2013-03-31 13 views
5

bitte beachten nicht, ob dumme Frage, aber bitte ich brauche meine Verwirrung zu löschen ..Android View Parameter für OnClickListener Methode

Für OnClickListener auf eine Schaltfläche in android ich dies tat setzen in main.xml

<Button 
    android:id="@+id/button1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentTop="true" 
    android:text="Button" 
    android:onClick="clicked" 
/> 

und in Java-Datei habe ich

public void clicked(View v) 
    { 
    // my code here 
    } 

meine Frage ist, warum müssen wir View view passieren, wenn wirnennenMethode.

Antwort

9

AFAIK,

Da Methode, ohne sich auf die Schaltfläche in onCreate genannt wird. Um auf diese Schaltfläche zugreifen zu können, benötigen Sie eine Ansicht.

d. H. Ansicht v steht für Ihre Schaltflächenansicht.

Wenn Sie auf Schaltfläche zugreifen möchten, nehmen Sie an, Sie möchten Text auf It erhalten. Wie erhalten Sie es, ohne Knopf zu bekommen, indem Sie findViewbyId benutzen? Sie Ihre Taste wie diese

Button b=(Button)v; 

erhalten, um den Text

String text=b.getText(); 

So hier sind wir von findViewById

Im Allgemeinen verwenden immer die Taste nicht, wenn Sie auf die Schaltfläche zugreifen möchten Sie müssen dieses Objekt bekommen. Aber hier bekommst du das aus der Sicht. Ohne Verwendung von findViewById.

+0

ok Ansicht ist, weil Knopf es ausdehnt, warum wir seine Objektansicht brauchen? – Sikander

+0

@Sikander Lesen Sie einfach meine Antwort .. Ich habe Beispiel – Pragnani

+0

sehr gut erklärt, danke Sir – Sikander

2

Der erste Grund kommt mir in den Sinn ist, dass Sie mehrere Ansichten an die gleiche Methode anhängen können und v.getId() Sie könnten sich entsprechend der Ansicht, die gedrückt wurde, verhalten.

Im Allgemeinen kann es hilfreich sein, die mit dem Ereignis verknüpfte Ansicht aus verschiedenen Gründen zu verwenden, z. B. wenn Sie einige seiner Attribute ändern.

Verwandte Themen