识别按钮单击

时间:2017-04-03 15:34:27

标签: android

我设置了button1和id按钮,按钮2设置了button2 id。

现在这就是我想到的事情,我放置了这段代码并为onButtonClick(view v)下的每个按钮调用了一个开关状态 但当我点击任何按钮时,同样的事情发生在这个代码上,两个按钮都会发生增加。

public void onButtonClick(View v) {


    TextView tx = (TextView) findViewById(R.id.resultT);
    EditText e1 = (EditText) findViewById(R.id.fNum);
    EditText e2 = (EditText) findViewById(R.id.sNum);
    TextView t1 = (TextView) findViewById(R.id.result);
    Button b1 = (Button) findViewById(R.id.button);
    Button b2 = (Button) findViewById(R.id.button2);

    int numF = Integer.parseInt(e1.getText().toString());
    int numS = Integer.parseInt(e2.getText().toString());
    int sum = numF + numS;
    int mux = numF * numS;


    switch (v.getId()) {
        case R.id.button: {
            tx.setText(Integer.toString(mux));
            t1.setText(Integer.toString(mux));
        }
        case R.id.button2: {
            tx.setText(Integer.toString(sum));
            t1.setText(Integer.toString(sum));
        }
        break;
        default:
            throw new RuntimeException("an error has occurred");
    }


}
}

2 个答案:

答案 0 :(得分:1)

您必须在每个切换案例后添加一个break语句

如果连续多个switch case没有break语句,那么无论在哪种情况下匹配哪种情况,都会执行带有break的最后一个case。

修改您的开关块,如下所示:

switch (v.getId()) {
        case R.id.button: 
            tx.setText(Integer.toString(mux));
            t1.setText(Integer.toString(mux));

        break;
        case R.id.button2: 
            tx.setText(Integer.toString(sum));
            t1.setText(Integer.toString(sum));

        break;
        default:
            throw new RuntimeException("an error has occurred");
    }

答案 1 :(得分:0)

您尚未在案例break之后添加case R.id.button:语句,这就是case R.id.button2:始终执行的原因。

更新switch-case块,如下所示:

switch (v.getId()) {
    case R.id.button: {
        tx.setText(Integer.toString(mux));
        t1.setText(Integer.toString(mux));
    }
    break;
    case R.id.button2: {
        tx.setText(Integer.toString(sum));
        t1.setText(Integer.toString(sum));
    }
    break;
    default:
        throw new RuntimeException("an error has occurred");
}