Hallo,
ich bin gerade dabei mich etwas in die Materie der App-Entwicklung mit Android Studio und Java einzuarbeiten. Leider bereitet mir ein kleiner Codeschnipsel
schon Sorgen, da ich nicht wirklich durchsteige warum es so funktioniert. Es geht um folgendes Beispiel, bei dem mit OnClick der Zustand eines Buttons
verändert werden soll:
Soweit habe ich folgendes Verstanden: Es gibt eine Superklasse View in der das Interface OnClickListener angelegt ist mit der
nicht implementierten Methode onClick();
Um Code-Zeilen zu sparen wird OnClickListener on the fly im Programmablauf als anonyme Klasse eingebunden und die
Methode onClick direkt implementiert.
Das Buttonobjekt wird mit Hilfe der findViewbyID() Methode aufgerufen, weil die ID in der Klasse R gespeichert ist. So weiß die Activity Java
um welches Objekt aus der View es sich handelt.
Nun zur letzten Zeile: Warum wird das erzeugte Objekt von der Anyonymen Klasse OnClicklistener als Übergabeparameter
der Methode setOnClickListener übergben? Ist im Objekt onButtonClickListener die Methode onClick gespeichert?
Wie kann ich den gedanklichen Strich vom Button ziehen? Soweit ich weiß ist ein Button ja eine Unterklasse von TextView und
TextView wiederum von View?
Ich wäre für Hilfe dankbar.
ich bin gerade dabei mich etwas in die Materie der App-Entwicklung mit Android Studio und Java einzuarbeiten. Leider bereitet mir ein kleiner Codeschnipsel
schon Sorgen, da ich nicht wirklich durchsteige warum es so funktioniert. Es geht um folgendes Beispiel, bei dem mit OnClick der Zustand eines Buttons
verändert werden soll:
Java:
protected void onCreate(Bundle savedInstanceState) {
...
View.OnClickListener onButtonClickListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
...
}
};
Button button = (Button) findViewById(R.id.button_activity_main);
// Registrieren der OnClickListener-Instanz für den Button
button.setOnClickListener(onButtonClickListener);
...
}
Soweit habe ich folgendes Verstanden: Es gibt eine Superklasse View in der das Interface OnClickListener angelegt ist mit der
nicht implementierten Methode onClick();
Um Code-Zeilen zu sparen wird OnClickListener on the fly im Programmablauf als anonyme Klasse eingebunden und die
Methode onClick direkt implementiert.
Das Buttonobjekt wird mit Hilfe der findViewbyID() Methode aufgerufen, weil die ID in der Klasse R gespeichert ist. So weiß die Activity Java
um welches Objekt aus der View es sich handelt.
Nun zur letzten Zeile: Warum wird das erzeugte Objekt von der Anyonymen Klasse OnClicklistener als Übergabeparameter
der Methode setOnClickListener übergben? Ist im Objekt onButtonClickListener die Methode onClick gespeichert?
Wie kann ich den gedanklichen Strich vom Button ziehen? Soweit ich weiß ist ein Button ja eine Unterklasse von TextView und
TextView wiederum von View?
Ich wäre für Hilfe dankbar.