BlackBerry - использование события нажатия кнопки ButtonField - PullRequest
0 голосов
/ 14 мая 2010

Я разработал приложение пользовательского интерфейса в Blackberry.
При нажатии кнопки «Событие» я хочу показать результат добавления двух чисел.
Как обработать это событие в java-приложении Blackberry?

Ответы [ 2 ]

5 голосов
/ 14 мая 2010

Наилучшим вариантом использования события нажатия в 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 голосов
/ 14 мая 2010

или ..

add(new ButtonField("Click Me")) {  
  protected boolean navigationClick(int status, int time) {  
    showAddResult();  
    return true;  
  }  
});  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...