2012-10-04 73 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