如何确定在Android上按下哪个button

我需要知道,如何识别,哪个button被按下。 就像我有两个button,说button1和button2,他们都执行相同的方法,说方法(),如何确定按下哪个button?

问候

Solutions Collecting From Web of "如何确定在Android上按下哪个button"

最优雅的模式:

public void onClick(View v) { switch(v.getId()) { case R.id.button_a_id: // handle button A click; break; case R.id.button_b_id: // handle button B click; break; default: throw new RuntimeException("Unknow button ID"); } 

这样debugging起来就简单多了,确保你不会错过任何点击。

或者…你可以在button的xml代码中放一个android:onClick =“foo”,并在签名上定义一个java方法。 在foo的方法里面,得到这个id然后把它和你需要的一个进行比较

 public void foo(View v){ if (v.getId() == R.id.yourButton){ } else if (v.getId() == R.id.nextButton){ } } 

我有10个button执行相同的方法updateText() ,我用这个代码来获得点击button的文本:

 public void updateText(View v){ Button btn = (Button) findViewById(v.getId()); String text = btn.getText().toString(); } 

如果通过“执行相同的方法”,你的意思是OnClickListener,那么你必须引用传递给它的参数。

 public void onClick(View v) { if(v==btnA) { doA(); } else if(v==btnB) { doB(); } } 

好的得到了解决scheme

 if (yesButton.getId() == ((Button) v).getId()){ // remainingNumber } else if (noButton.getId() == ((Button) v).getId()) { // it was the second button }