嗨我在我的活动xml中有类似这样的东西(3个按钮)指向相同的方法:
<Button
android:id="@+id/Button_1"
android:onClick="printNo"
android:text="@string/Button_1" />
<Button
android:id="@+id/Button_2"
android:onClick="printNo"
android:text="@string/Button_2" />
<Button
android:id="@+id/Button_3"
android:onClick="printNo"
android:text="@string/Button_3" />
有什么方法可以确定在printNo方法中按下了哪个按钮?
答案 0 :(得分:24)
public void printNo( View v ) {
switch (v.getId()) {
case (R.id.Button_1):
//stuff
break;
case (R.id.Button_2):
//stuff
break;
case (R.id.Button_3):
//stuff
break;
}
答案 1 :(得分:13)
正如@ user1106018所说 - 你可以在xml中使用tag
:
<Button android:onClick="f" android:tag="0"/>
然后以这种方式获取此标记非常简单:
public void f(View v) {
String value = v.getTag();
}
答案 2 :(得分:12)
只需切换ID:
public void printNo(View v){
switch (v.getId()){
case R.id.Button_1:
break;
case R.id.Button_2:
break;
case R.id.Button_3:
break;
}
答案 3 :(得分:4)
在我的最后工作
public void printNo(View v) {
switch (v.getId()) {
case R.id.Button_1:
break;
case R.id.Button_2:
break;
case R.id.Button_3:
break;
}
答案 4 :(得分:0)
在xml add标签中,np,按钮名称。
public void printNo(View V){
view.getTag();
// now you can recognize view with getTag()
}
其他答案似乎也很好;)