Eventuali duplicati:
Difference between OnClick() event and OnClickListener?pulsante CLICK ascoltatori in Android
Sono semi-nuovo per lo sviluppo Android e quando ho iniziato ho cercato di evitare di utilizzare il layout xml da qualsiasi significa necessario quindi alcuni dei miei progetti precedenti coinvolgono pulsanti che creano esplicitamente un OnClickListener e lo implementano come classe interna anonima. Come ad esempio -
final Button button = new Button(this);
button.setText("Click to change second line of text");
OnClickListener buttonListener = new View.OnClickListener() {
boolean clicked = false;
int numClicks = 0;
@Override
public void onClick(View v) {
if(numClicks > 5) {
button.setText("STOP IT");
}
numClicks++;
if(clicked == false){
clicked = true;
tv2.setText("Text Changed on Button Click");
}
else
{
clicked = false;
tv2.setText("Click again");
}
}
};
button.setOnClickListener(buttonListener);
Ma, come ho avuto più familiarità con Android, ho cominciato a capire il valore dei layout XML e bottoni realizzati in questo modo
<Button
android:id="@+id/button1"
android:layout_height = "wrap_content"
android:layout_width ="wrap_content"
android:text = "lets do this"
android:onClick = "DoIt"
/>
nel XML di layout, in cui è stato definito DoIt nella java.
La mia domanda è, sono questi 2 metodi funzionalmente la stessa cosa? C'è un OnClickListener definito dal compilatore da qualche parte dietro le quinte? Ci sono delle funzionalità che ti consentono di utilizzare in un modo o nell'altro?
[Qui è una discussione utile ] (http://stackoverflow.com/a/7453469/1154026) Penso che aiuterà con la tua domanda. – VicVu
È possibile impostare il listener dei clic in tre modi: 1. impostazione del listener di clic individuale per ciascun elemento. 2. implementazione di OnClickListener nell'attività. 3. creando una funzione separata per gestire il clic del pulsante e aggiungere questa funzione in xml. puoi trovare questi esempi qui http://wiki.workassis.com/android-three-ways-to-set-click-listener/ –