2012-10-04 3 views
5

Hallo Ich habe so etwas wie dies (3 Tasten) in xml meiner Tätigkeit gleiche Methode zeigen:von einer Schaltfläche Übergeben Parameter auf Android: onClick Methode

<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" /> 

Gibt es eine Möglichkeit, die Taste gedrückt wurde, bestimmen könnte während in der printNo Methode?

+0

warum Sie auf diese Weise verwenden .. Auch möglich, Java-Datei dynamisch aufzurufen .. –

Antwort

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

Schalten Sie einfach über die 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

in meinem Ende Arbeits

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

im XML-Add-Tag, np mit Namen Taste.

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

Andere Antworten scheint auch gut;)

11

Wie @ user1106018 sagte - Sie tag in xml so verwenden können:

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

Dann ist es wirklich einfach diesen Tag in diesem zu erhalten Weg:

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

Es fehlt nur eine Umwandlung, da getTag() ein Objekt und keine Zeichenfolge zurückgibt – Maks