Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将参数从按钮传递到android:onClick方法_Android_Eclipse_Eclipse Adt - Fatal编程技术网

将参数从按钮传递到android:onClick方法

将参数从按钮传递到android:onClick方法,android,eclipse,eclipse-adt,Android,Eclipse,Eclipse Adt,嗨,我的活动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" and

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

只需切换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;
}
在我这边工作

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

在xml添加标记中,带有按钮名称的np

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

其他答案似乎也不错;)

正如@user1106018所说,您可以在xml中使用
标记,如下所示:

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

你为什么用这种方式。。也可以动态调用java文件..只是缺少一个强制转换,因为getTag()返回的对象不是Stringor
Integer.parseInt((String)v.getTag())
,用于整数
<Button android:onClick="f" android:tag="0"/>
public void f(View v) {
    String value =  v.getTag(); 
}