[Android / Java] Verstehen Sie den Beschreibungstyp in den Listener-Einstellungen (Schaltflächeninstallation).

Einführung

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.

Bestätigung der Bedingungen

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)

Code

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>

Muster 1: Beschreiben Sie Event & Event Handler und Listener separat

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");
        }
    }
}

Muster 2: Beschreiben Sie Ereignisse und Ereignishandler und Zuhörer gemeinsam

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");
            }
        });
    }
}

Schließlich

In Button ・ SetOnClickListener ・ View.OnClickListener ・ OnClick Da der Fluss entschieden ist, erkennen Sie ihn als einen Satz.

Nachtrag (2020/11/1)

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!

Recommended Posts

[Android / Java] Verstehen Sie den Beschreibungstyp in den Listener-Einstellungen (Schaltflächeninstallation).
[Android] Ich möchte den Listener über die Schaltfläche in ListView abrufen
Java-Referenz zum Verständnis in der Abbildung
Der in Java 10 eingeführte Schnittpunkttyp ist erstaunlich (?)
Organisiertes Memo im Kopf (Java - Datentyp)
Typbestimmung in Java
In der Abbildung verstandene Java-Klassen und -Instanzen
Siehe C ++ im Android Studio-Modul (Java / Kotlin)
[Android, Java] Praktische Methode zur Berechnung der Differenz in Tagen
Probieren Sie den Funktionstyp in Java aus! ①
Greifen Sie mit Java auf die Netzwerkschnittstelle zu
Versuchen Sie, Android Hilt in Java zu implementieren
Errate den Zeichencode in Java
Entpacken Sie die Zip-Datei in Java
Lassen Sie uns den Array (Element) Typ verstehen!
Analysieren der COTOHA-API-Syntaxanalyse in Java
Einstellungen für das SSL-Debugging in Java
Lassen Sie uns den optionalen (verpackten) Typ verstehen!
Rufen Sie die Super-Methode in Java auf
[Android] Steuern Sie das Ereignis einfach, wenn Sie in Fragment auf die Schaltfläche Zurück klicken
[Java] Zeigt die Bitfolge an, die in der Bytetypvariablen auf der Konsole gespeichert ist
Was war keine faire Verwendung der Java-API-Umleitung unter Android?
Grund, L zu der Zahl hinzuzufügen, die in den langen Java-Typ eingegeben werden soll
Verstehen Sie den Unterschied zwischen int und Integer und BigInteger in Java und float und double
[Android Studio] Beschreibung, die kontinuierlich in die SQLite-Datenbank eingegeben werden kann [Java]