2010-05-14 27 views

回答

5

ButtonField中使用點擊事件的最佳選項是使用FieldChangeListener。只需實現FieldChangeListener接口並應用ButtonField。 setChangeListener()

class MenuScreen extends MainScreen implements FieldChangeListener { 
    EditField mNumberAEditField; 
    EditField mNumberBEditField; 
    ButtonField mAddButtonField; 
    public MenuScreen() { 
     super(DEFAULT_CLOSE); 
     mNumberAEditField = new EditField("A:", "2", 10, 
       EditField.FILTER_INTEGER); 
     add(mNumberAEditField); 
     mNumberBEditField = new EditField("B:", "2", 10, 
       EditField.FILTER_INTEGER); 
     add(mNumberBEditField); 
     mAddButtonField = new ButtonField("A + B", 
       ButtonField.CONSUME_CLICK); 
     add(mAddButtonField); 
     mAddButtonField.setChangeListener(this); 
    } 

    public void fieldChanged(Field field, int context) { 
     if(field == mAddButtonField) 
     { 
      showAddResult(); 
     } 
    } 

    private void showAddResult() { 
     String message = ""; 
     String aStr = mNumberAEditField.getText(); 
     String bStr = mNumberBEditField.getText(); 
     if(aStr == "") 
      message = "Enter A value!"; 
     else if(bStr == "") 
      message = "Enter B value!"; 
     else  
     { 
      int res = Integer.parseInt(aStr)+Integer.parseInt(bStr); 
      message = aStr+" + "+bStr+" = "+String.valueOf(res);   
     } 
     Dialog.inform(message); 
    } 
} 

與FieldChangeListener其他選項是宣佈和內嵌實現它。比你將不必檢查從現場活動即將到來:

 mAddButtonField.setChangeListener(new FieldChangeListener() { 
      public void fieldChanged(Field field, int context) { 
       showAddResult(); 
      } 
     }); 
2

或..

add(new ButtonField("Click Me")) { 
    protected boolean navigationClick(int status, int time) { 
    showAddResult(); 
    return true; 
    } 
});