Android onClick-Ereignis für Ansichten
-
21-12-2019 - |
Frage
Ich habe eine Idee zu setzen android:onClick="myClickMethod"
für mehrere TextViews.
<TextView
android:id="@+id/search_suggestion_1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:onClick="myClickMethod"
android:clickable="true"/>
<TextView
android:id="@+id/search_suggestion_2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:onClick="myClickMethod"
android:clickable="true"/>
<TextView
android:id="@+id/search_suggestion_3"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:onClick="myClickMethod"
android:clickable="true"/>
Wie kann ich unterscheiden, von welcher TextView myClickMethod() aufgerufen wird?
Lösung
Sie können es mithilfe der IDs jeder Textansicht tun.Verwenden Sie das Schalterkasten in Ihrem MyClickMethod basierend auf der Textansicht-ID.Sie können auch Textansichten mit den Tags differenzieren.
Andere Tipps
Sie können eine festlegen tag
für jeden von ihnen.So zum Beispiel zum ersten Mal View
verwenden android:tag="1"
und so weiter.
In deinem onClick
Methode, einfach verwenden v.getTag()
und Sie werden sie unterscheiden können.
Sie können einen einfachen Schaltkasten verwenden
generasacodicetagpre.Wenn Sie eine Funktion in der Aktivität wie:
erstellen generasacodicetagpre.Sie können verwenden switch-case
eine Entscheidung treffen welche Textview
wird durch Vergleich ihrer gedrückt id
.
public void myClickMethod(View v) {
switch(v.getd()) {
case R.id.search_suggestion_1:
//code here
break;
case R.id.search_suggestion_2:
//code here
break;
case R.id.search_suggestion_3:
//code here
break;
}
}