1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

Verwendung von Listener

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Raidri, 02.06.2010.

  1. Raidri, 02.06.2010 #1
    Raidri

    Raidri Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    71
    Erhaltene Danke:
    1
    Registriert seit:
    27.03.2010
    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
     
  2. jim, 02.06.2010 #2
    jim

    jim Android-Hilfe.de Mitglied

    Beiträge:
    74
    Erhaltene Danke:
    0
    Registriert seit:
    02.05.2010
    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.
     
  3. the_alien, 02.06.2010 #3
    the_alien

    the_alien Android-Lexikon

    Beiträge:
    1,559
    Erhaltene Danke:
    184
    Registriert seit:
    04.05.2009
    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.
     
    Raidri bedankt sich.
  4. Raidri, 02.06.2010 #4
    Raidri

    Raidri Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    71
    Erhaltene Danke:
    1
    Registriert seit:
    27.03.2010
    Schönen Dank, genau das wollte ich Wissen.
     
  5. SingSing, 04.04.2011 #5
    SingSing

    SingSing Neuer Benutzer

    Beiträge:
    6
    Erhaltene Danke:
    0
    Registriert seit:
    08.01.2011
    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?
     

Diese Seite empfehlen