Verschiedene Listener, die in der Android-Anwendungsentwicklung angezeigt werden. Es gibt zwei Hauptmuster für das Schreiben in eine Java-Datei, und es war verwirrend, daher werde ich es als Memorandum schreiben.
Dieses Beispiel ist eine Anwendung, die eine Meldung anzeigt, wenn Sie eine Taste drücken.
Ereignis: Eine Operation, die auf dem Bildschirm ausgeführt werden soll (Beispiel: Klicken) Ereignishandler ・ ・ ・ Für das Ereignis auszuführende Verarbeitung (Beispiel: Text anzeigen, wenn darauf geklickt wird) Listener: Etwas, das ein Ereignis erkennt (Beispiel: Schaltfläche)
Das Layout ist geeignet.
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Taste"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/text" />
</androidx.constraintlayout.widget.ConstraintLayout>
MainActivity.java
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Listener-Einstellung (Ereigniserkennungsschaltfläche installiert)
Button button1 = findViewById(R.id.btn);
button1.setOnClickListener(new TestListener());
}
//Erstellen einer Listener-Klasse(Drück den Knopf+Textdarstellung)
private class TestListener implements View.OnClickListener {
@Override
public void onClick(View view) {
TextView textView = findViewById(R.id.text);
textView.setText("Ich habe auf button1 geklickt");
}
}
}
MainActivity.java
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Beschreibe alles zusammen
Button button2 = findViewById(R.id.btn);
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
TextView textView = findViewById(R.id.text);
textView.setText("Ich habe auf button2 geklickt");
}
});
}
}
In Button ・ SetOnClickListener ・ View.OnClickListener ・ OnClick Da der Fluss entschieden ist, erkennen Sie ihn als einen Satz.
Ich habe zwei eingeführt, aber es scheint, dass View.OnClickListener mit einer einfachen anonymen Klasse festgelegt ist. Daher sollte Muster 1 als Referenz zum Verständnis der Struktur verwendet werden!