Jump to content

Remove Listener?


Recommended Posts

  • 3 years later...

Hallo,

 

ich möchte diesen Thread nochmal auffrischen mit einer ergänzenden Frage:

 

DIe Frage bezieht sich auf Java.

 

Ich möchte einen Listener wieder entfernen (in meinem Fall einen stateChangedListener vom DualButton-Bricklet). Die Methode button.removeStateChangedListener() erwartet einen Übergabeparameter, nämlich den zu entfernenden Listener. Diesen habe ich angelegt wie im Beispielquelltext hier von TF. Ich habe aber in diesem Beispiel keine Referenz auf diesen Listener. Wie gestalte ich es am simpelsten, dass ich eine Referenz bekomme?

Vielleicht könnte jemand einen kurzen Beispielquelltext geben, der dies verdeutlicht. Ich stehe gerade nämlich ziemlich auf dem Schlauch... Google hat mich hier nicht wirklich weiter gebracht. Ich will den Listener nämlich nicht (z.B. per boolean-Variable) deaktivieren, sondern wirklich entfernen.

 

Das wäre sehr hilfreich. Vielen Dank schon im Vorraus.

 

Link zu diesem Kommentar
Share on other sites

Ich habe mich nochmal in Ruhe drangesetzt. Falls nochmal jemand die gleiche Frage haben sollte wie ich, poste ich mal die Lösung.

 

Kompiliert einwandfrei.

Trotzdem frage ich mich: Machen die anderen das auch so? Gibt es einen besseren Weg? Würde mich über Verbesserungsvorschläge freuen. Mein Quelltext sieht im Moment so aus:

 

            // Add and implement state changed listener
            BrickletDualButton.StateChangedListener bscl = new BrickletDualButton.StateChangedListener() {
                public void stateChanged(short buttonL, short buttonR, short ledL, short ledR) {
                    if(buttonL == BrickletDualButton.BUTTON_STATE_PRESSED) {
                        //TUE WAS
                    } 
                    if(buttonR == BrickletDualButton.BUTTON_STATE_PRESSED) {
                        // TUE WAS
                    }
                }
            };
            tf.button.addStateChangedListener(bscl);
            //TUE WAS
            tf.button.removeStateChangedListener(bscl)

Link zu diesem Kommentar
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Reply to this topic...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...