[JAVA] [Android] Beispiel für eine Schnittstelle

Ich möchte ein konkretes Beispiel für die Benutzeroberfläche vorstellen, die beim Erstellen einer Android-Anwendung verwendet wird.

Schnittstellenbeispiel

Verschiedene Zuhörer

Der Listener hier ist in View.java definiert. Mit AndroidStudio können Sie mit Befehl + B zu dem in der Klasse definierten Ort springen. Überprüfen Sie dies daher bitte.

Es wird manchmal als Ereignis-Listener bezeichnet.

Faden

Wird beim Programmieren mit mehreren Threads verwendet.

Referenz: Android Developer-Prozesse und -Threads

Beispiel des Schreibens

Nehmen wir als Beispiel OnClickListener.

Übergeben Sie eine anonyme Klasse als Argument

Übergeben Sie die Schnittstelle als Argument an die setOnClickListener-Methode der View-Klasse.

Button button = new Button(this);
button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        //Was tun, wenn auf die Schaltfläche geklickt wird?
    }
});

Sie können es auch vorab einer Variablen zuweisen. (Ich werde es nicht tun ...)

Button button2 = new Button(this);
View.OnClickListener onClickListener = new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        //Was tun, wenn auf die Schaltfläche geklickt wird?
    }
};
button2.setOnClickListener(onClickListener);

Verwenden Sie den Lambda-Ausdruck

Vorbereitung

Die in Java8 implementierte neue Grammatik Lambda muss für die Verwendung unter Android vorbereitet werden.

Beziehen Sie sich auf diese Seite,

app/build.gradle


android {
  defaultConfig {
    ...
    jackOptions {
        enabled true
    }
  }
  compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
  }
}

Fügen Sie die beiden oben genannten Stellen hinzu.

Zu diesem Zeitpunkt ist es erforderlich, dass die Version von gradle in gradle-wrapper.properties 2.1.0 oder höher ist.

Schreiben Sie im Lambda-Stil

Button button3 = new Button(this);
button3.setOnClickListener((View v)->{
    //Was tun, wenn auf die Schaltfläche geklickt wird?
});

Schließlich

Es scheint keine klare Antwort auf "Wie soll ich es schreiben?" Zu geben.

Es ist ein kleiner alter Artikel,

Persönlich schreibe ich gerne in anonymen Klassen und ich mag es nicht wirklich, Geräte in Acitivyt oder Fragment zu implementieren (weil es sich seltsam objektorientiert anfühlt ...)

Recommended Posts

[Android] Beispiel für eine Schnittstelle
Beispiel für die Verwendung der Schnittstelle
Schnittstelle
Android-Ansicht
Schnittstellenvorteile
Java (Schnittstelle)
neue Schnittstelle
[Java] -Schnittstelle
Beispieltitel