如何使用fieldchangelistener处理按钮和下拉字段

时间:2012-03-08 17:31:24

标签: blackberry blackberry-jde

我想在同一个屏幕上显示按钮并下拉并希望使用fieldChnageListener捕获它,我无法获得如何在同一屏幕上添加它们。我有以下代码:

ButtonField btnSubmit = new ButtonField("Submit!",
ButtonField.CONSUME_CLICK);
         FieldListener listener = new FieldListener();
               //assign that listener to the button
               btnSubmit.setChangeListener(listener);
               add(btnSubmit);

 class FieldListener implements FieldChangeListener {
       public void fieldChanged(Field f, int context){
           //if the submit button is clicked
           if (f == btnSubmit){
                getCalender();
               //if the EditField is empty
               if(editField.getText().equals("")){
                   Dialog.alert("Please enter timezone in the field.");
               }else{ // if it is not empty, display the message
                   Dialog.alert("TimeZone is"+editField.getText()+"!");
                    timeZone = editField.getText();


               }
           }
           if(f == editField) {
               //text changed in the ef-Field (EditField)
           }
       }
   }

如何在这里添加下拉列表?

1 个答案:

答案 0 :(得分:1)

你怎么能这样做..

如果你的类正在实现FieldChangeListner,那么在其fieldChanged方法中这样做

public class Demo extends mainScreen implements FieldChangeListener {
public Demo () {
ButtonField btnSubmit = new ButtonField("Submit!",
ButtonField.CONSUME_CLICK);
           //assign that listener to the button
           btnSubmit.setChangeListener(this);
           add(btnSubmit);
}

   public void fieldChanged(Field f, int context) {
       //if the submit button is clicked
       if (f == btnSubmit){
            getCalender();
           //if the EditField is empty
           if(editField.getText().equals("")){
               Dialog.alert("Please enter timezone in the field.");
           }else{ // if it is not empty, display the message
               Dialog.alert("TimeZone is"+editField.getText()+"!");
                timeZone = editField.getText();


           }
       }
       if(f == editField) {
           //text changed in the ef-Field (EditField)
       }
   }
}

这应该有效。