Blackberry设备上BasicEditField中的空值

问题描述:

在模拟器中测试我的应用程序时,我的应用程序运行完美。但在真实设备上,我得到为空的为BasicEditField,所以我无法执行我的应用程序。以下是我的代码片段。Blackberry设备上BasicEditField中的空值

public class Login extends MainScreen { 

    private UiApplication application = UiApplication.getUiApplication(); 
    private BasicEditField _email = null; 
    private PasswordEditField _pwd = null; 
    private ButtonField login = null; 
    String imei = GPRSInfo.imeiToString(GPRSInfo.getIMEI(), false); 

    public Login(){ 

     try { 
      _email = new BasicEditField("Email: ", "", 100, EditField.NO_NEWLINE); 
      _email.setFont(font); 
      add(_email); 

      _pwd = new PasswordEditField("Password: ", "", 100, EditField.NO_NEWLINE); 
      _pwd.setFont(font); 
      add(_pwd); 

      login = new ButtonField("Login", ButtonField.CONSUME_CLICK); 
      login.setChangeListener(new FieldChangeListener() { 
       public void fieldChanged(Field field, int context) { 
        String e = _email.getText(); 
        String xmlUrl = "http://********:9090/com.infra.rest/rest/todo?email='"+ e +"'&dId='"+ imei +"';deviceside=true"; 

        String[][] urlData = XmlFunctions.getUserFromXml(xmlUrl); 
       } 
      }); 
      login.setFont(font); 
      add(login); 
     } catch (Exception e) { 
      System.out.println("Failed to create user interface components"); 
     } 
    } 
} 

在检查电子邮件和IMEI值,我得到NULL和异常说法 “的toString” 有特色 “()Ljava /朗/字符串;”不适用于此物体

这是一整天,但我无法克服这个问题。

+0

你认为哪行是null? – jprofitt

+0

@jprofit:我在String e = _email.getText(); ** e **的值为空 –

+0

我不认为这是可能的。 AFAIK getText()总是返回一个非空值。 –

我怀疑它与从匿名内部类访问非静态外部类字段有关。请尝试:

String e = Login.this._email.getText(); 

请仔细阅读this wikipedia page