开发者

BlackBerry - Consuming Click Event from ButtonField

开发者 https://www.devze.com 2022-12-30 11:21 出处:网络
I\'ve developed UI application in blackberry. On Button Click event I开发者_StackOverflow want to display result of adding two number.

I've developed UI application in blackberry.

On Button Click event I开发者_StackOverflow want to display result of adding two number.

How to handle this event in java app of Blackberry?


Best option to consume click event in ButtonField is to use FieldChangeListener. Just implement FieldChangeListener interface and apply 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);
    }
}

Other option with FieldChangeListener is to declare and implement it inline. than you will not have to check from which field event is coming:

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


or..

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

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号