2017-04-03 76 views
-2

我設置了button1和id按鈕,button2設置了button2 id。識別按鈕點擊

現在,這裏是我放在什麼將會發生,這是走出去我心中的這個代碼和onButtonClick(view v) 下呼籲每個按鈕一個switch敘述,但是當我點擊任何按鈕,同樣的事情正在發生或者在此代碼除了是發生這兩個按鈕。

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"); 
    } 


} 
} 

回答

1

必須在每個開關的情況下

後添加break語句如果有多個開關的情況下在沒有break語句然後休息後一種情況下將此事沒有這種情況下執行的行在該序列的案例中匹配。

修改你的開關塊,如下所示:

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"); 
    } 
0

情況case R.id.button:這就是爲什麼case R.id.button2:始終執行後你還沒有添加break聲明。

更新您的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"); 
}