2011-08-18 3 views
0

시뮬레이터에서 내 응용 프로그램을 테스트 할 때 내 응용 프로그램이 완벽하게 실행됩니다. 하지만 실제 장치에서 나는 null for BasicEditField를 얻었 기 때문에 응용 프로그램을 실행할 수 없습니다. 다음은 제 코드입니다. 내가 얻을 이메일 및 IMEI 값을 검사에Blackberry 장치의 BasicEditField에서 Null 값

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"); 
     } 
    } 
} 

NULL방법 서명 "toString"라는 예외 "() Ljava/랭/문자열;" 이 객체에는 해당되지 않습니다.

하루 종일되었지만이 문제를 극복 할 수 없습니다.

+0

null로 보는 라인은 무엇입니까? – jprofitt

+0

@jprofit : String에서 null을 얻습니다. e = _email.getText(); ** e ** 값은 null입니다. –

+0

이것이 가능하지 않다고 생각합니다. AFAIK getText()는 항상 null이 아닌 값을 반환합니다. –

답변

1

익명 내부 클래스의 비 정적 외부 클래스 필드에 액세스하는 것과 관련이 있다고 생각됩니다. 시도 :

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

this wikipedia page을 읽었습니다.