2012-08-29 121 views
0

我在我的代码中有2个按钮,'清除'和'登录',问题是登录按钮无法被点击,但清除按钮工作得很好。 我的错误在哪里?Backberry Java字段监听器不听

下面的代码是整个项目

public MyScreen() 
{   
    // Set the displayed title of the screen  
    Bitmap logo = Bitmap.getBitmapResource("icon.png"); 
    bitField = new BitmapField(logo, Field.FIELD_HCENTER); 
    userField = new EditField("Username :", ""); 
    passField = new PasswordEditField("Password :", ""); 
    ddlDomain = new ObjectChoiceField("Domain :", new String[] {"Home", "Work"}); 
    chkRemember = new CheckboxField("Remember Password", false); 
    btnClear = new ButtonField("Clear", ButtonField.CONSUME_CLICK); 
    btnLogIn = new ButtonField("Log In", ButtonField.CONSUME_CLICK); 
    add(bitField); 
    add(new SeparatorField()); 
    add(new LabelField("Please enter your credentials:")); 
    add(userField); 
    add(passField); 
    add(ddlDomain); 
    add(chkRemember); 
    HorizontalFieldManager btnManager = new HorizontalFieldManager(Field.FIELD_RIGHT); 
    btnManager.add(btnClear); 
    btnManager.add(btnLogIn); 
    add(btnManager); 

    btnClear.setChangeListener(this); 
} 

public void fieldChanged(Field field, int context) { 
    if(field == btnClear){ 
     clearTextFields(); 
    } 
    else if(field == btnLogIn){ 
     login(); 
    } 
} 
private void clearTextFields(){ 
    userField.setText(""); 
    passField.setText(""); 
} 
private void login(){ 
    if(userField.getTextLength() == 0 || passField.getTextLength() == 0){ 
     Dialog.alert("You must enter a username and password"); 
    } 
    else{ 
     String username = userField.getText(); 
     String selectedDomain = (String)ddlDomain.getChoice(ddlDomain.getSelectedIndex()); 
     SuccessScreen loginSuccess = new SuccessScreen(username, selectedDomain); 
     UiApplication.getUiApplication().pushScreen(loginSuccess); 
    } 
} 

回答

3

嗨亲爱的,你需要添加

btnLogIn.setChangeListener(this); 

试试这个

+1

OMG WTF..this是我问过的最愚蠢的问题,这一个已经花了我几小时(真的,3小时)@ _ @ 无论如何谢谢:D –

+0

事情发生这样的事不用担心 –