So erhalten Sie den Listener einer Ansicht

Ich schreibe Dienst, der mit anderen Apps interagiert. Es registriert Listener auf Views (Buttons, Textviews, ...), die bereits Listener haben. Ich muss sie durch meine eigenen Listener (Werke) ersetzen, einige Sachen machen und dann meine Listener abmelden und die alten wiederherstellen.

Eine App mit einer Schaltfläche mit einem onClickListener wird ausgeführtMein Dienst registriert einen onClickListener im UI-Thread + macht etwasMein Dienst stellt den alten Hörer wieder her

Es wäre einfach, wenn es eine gäbeview.getOnClickListener -Methode. Dann könnte ich die alten speichern und die neuen Hörer ersetzen, wenn ich fertig bin.

Gibt es eine Möglichkeit, Listener aus einer Ansicht zu holen oder mehr als einen Listener desselben Typs an eine Ansicht zu binden?

Button btn = (Button) findViewById(R.id.btn1);
btn.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {
            //do something
        }
    });
// I need to do, but found no solution for that.
View.OnClickListener oldListener = btn.getOnClickListener();

Wenn ich die neuen Listener für eine Ansicht registriere, werden die alten Listener überschrieben, oder? Es wäre auch in Ordnung, wenn beide Zuhörer ("neu" und "alt") gleichzeitig existieren. Nur die alten dürfen nicht weg sein.

edit: ich habe leider keine möglichkeit den hörer bei zuweisung zu speichern. Ich muss es rückwärts von der Ansichtskomponente erhalten.

Vielen Dank

Antworten auf die Frage(3)

Ihre Antwort auf die Frage