我设置了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");
}
}
}
答案 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");
}