2012-10-04 127 views
5

您好我有我的活动XML指向同样的方法是这样的(3个按钮):从按钮传递参数给安卓的onClick方法

<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

为什么你用这种方式..也可以动态调用java文件.. –

回答

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

在XML中添加标签,NP与按钮名称。

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

其他的答案似乎也不错;)

11

正如@ user1106018说 - 你可以在XML中一样,使用tag

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

然后,它是非常简单的进入这个这个标签方式:

public void f(View v) { 
    String value = v.getTag(); 
} 
+0

自从getTag()返回一个不是字符串的对象后,只是缺少一次强制转换 – Maks