12

嗨,我的活动 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 方法中按下了哪个按钮?

4

5 回答 5

32
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;
}
于 2012-10-04T12:33:49.740 回答
14

正如@user1106018 所说-您可以tag像这样在xml中使用:

<Button android:onClick="f" android:tag="0"/>

那么通过这种方式获取这个标签就真的很简单了:

public void f(View v) {
    String value =  v.getTag(); 
}
于 2012-10-04T12:39:23.443 回答
13

只需切换 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;
}
于 2012-10-04T12:32:41.820 回答
5

为我工作

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;
}
于 2012-10-04T12:33:58.240 回答
0

在 xml 添加标签,带有按钮名称的 np。

public void printNo(View V){
    view.getTag();
    // now you can recognize view with getTag()
}

其他答案似乎也不错;)

于 2012-10-04T12:34:19.573 回答