Verwendung von Listener

R

Raidri

Ambitioniertes Mitglied
1
Hallo,

Ich habe mal eine Frage. Ich bin es gewohnt Listener auszulagern in eine neue Klasse und diese Klasse dann halt zu zu dem Button oder was auch immer hinzuzfügen, aber immer öfter sehe ich, dass man sowas hier macht:

Code:
 myEditText.setOnKeyListener(new OnKeyListener() {	
			@Override
			public boolean onKey(View v, int keyCode, KeyEvent event) {
				if(event.getAction() == KeyEvent.ACTION_DOWN){
					if(keyCode == KeyEvent.KEYCODE_DPAD_DOWN){
						todoItems.add(0, myEditText.getText().toString());
						aa.notifyDataSetChanged();
						myEditText.setText("");
						return true;
					}
				}
				return false;
			}
		});

Warum macht man das bei Android ? Hat das einen Performance Grund und man sollte das immer so machen oder ist es egal und ich kann mir die Listener auch auslagern ?

Danke.

Gruß
Raidri
 
Hallo,

ich bin auch ein Anfänger in der Andorid und Java Programmierung...
Ich denke du meinst die anonymen Listener welchen du immer häufiger über den Weg läufst. Diese machen dann Sinn wenn du wenig oder kaum funktionalität anbieten möchtest. Der anonyme Listener muss ja an sich nur "eine Variable" oder andere geringfügige Sachen setzen( bsp. Variable auf true) damit etwas ausgeführt wird. Durch deren Verwendung blähst du dann deinen Code an Klassen auch nicht unnötig auf. Diesen Link fand ich sehr hilfreich
Implementing Listeners in your Android/Java application | Tseng's dev blog
.
P.S. Ich habe auch gerade eine neue Frage reingestellt zum Listener Thema(vieleicht kannst Du mir da auch weiter helfen), möchte nur hier nicht was neues anfangen falls ich Dir etwas falsche erklärt habe.
 
Imho ist ein großer Vorteil: Man sieht sofort was gemacht wird wenn man durch den Code geht. "Ah hier ein Button, bei einen Click macht er dies und jenes".
Wenn man den Listener an verschiedenen Stellen verwenden kann mache ich das über eine Methode die einen anynomen Listener zurückgibt.
Erst wenn der Umfang wirklich groß wird lagere ich das ganze in eine Klasse aus, wobei ich es hier wirklich ein eine 2. Klasse mache und nicht einfach der GUI Klasse ein "implements" mitgebe. Das wird imho viel zu schnell zu unübersichtlich.

PS: Macht übrigens keinen Unterschied in der Performance. Das ganze wird in eine eigene .class Datei kompiliert.
 
  • Danke
Reaktionen: Raidri
Schönen Dank, genau das wollte ich Wissen.
 
Hallo Entwickler!
Meine Frage zielt genau in die Gegenrichtung. Ich habe vier Activities, welche alle aufeinander verweisen. Das Programm funktioniert fehlerfrei, aber nun sollen die OnClickListener in eine eigene, externe Klasse auslagert werden.
Bisher habe ich es nicht hinbekommen. Dabei sollen nicht nur das erzeugte Objekt
OnClickListener EinstellungenOnClickListener = new OnClickListener ()
zusammen mit der
public void onClick(View v)
ausgelagert werden, sondern auch
SucheButton = (Button) findViewById(R.id.SucheButton); SucheButton.setOnClickListener(SucheOnClickListener); .
Könnt ihr mir ein paar Stichwörter nennen, um meine Suche nach einer Lösung etwas einzugrenzen? Vielleicht habt ihr ja auch ein Link für mich?
 

Ähnliche Themen

M
  • MikelKatzengreis
Antworten
10
Aufrufe
220
swa00
swa00
S
Antworten
17
Aufrufe
554
jogimuc
J
Jansenwilson
Antworten
1
Aufrufe
691
Mazuch
Mazuch
Zurück
Oben Unten