Datenbindung: Bindet eine einzelne Methode vom Listener mit mehreren Methoden

8

Yigit Boyar und George Mount Mitglieder des Android UI Toolkit Teams gaben eine Diskussion zur Datenbindung . Im Video um 13:41 sagt George Mount das

  

Sie können auch einige der seltsamen Listener wie onTextChanged ausführen.   TextWatcher hat drei Methoden, aber alle interessieren sich nur dafür   onTextChanged, oder? Sie können tatsächlich nur auf eine von ihnen zugreifen, wenn Sie   wollen, oder alle von ihnen. "

%Vor%

Er schien das zu sagen, anstatt den üblichen addTextChangedListener zu verwenden Methode, die ungefähr so ​​aussieht

%Vor%

wir könnten das einfach tun

%Vor%

Handler-Klasse

%Vor%

Der Code funktioniert in diesem Fall, aber er scheint in anderen Fällen nicht zu funktionieren, wenn der Listener mehrere Methoden wie ViewPagers addOnPageChangeListener Methode. Zum Beispiel funktioniert das nicht

%Vor%

und die Klasse Handler

%Vor%

Das Projekt spuckt diesen Fehler beim Erstellen von

aus %Vor%

Ich bin jetzt ein wenig verwirrt, weil sich herausstellt, dass EditText tatsächlich eine geerbte onTextChanged Methode, an die die Datenbindungsbibliothek auch android:onTextChanged="@{handlers::onTextChanged}" binden kann.

Meine Frage ist also, ob es wirklich möglich ist, an eine einzige Listener-Methode zu binden und mir etwas fehlt, oder hat George Mount in seinem Vortrag einen Fehler gemacht?

    
Olumide 30.08.2016, 11:37
quelle

1 Antwort

9

Hoffen wir, dass es in dem Gespräch kein Fehler war :-)

Es sieht so aus, als hätten wir es nicht für ViewPager implementiert. Die Implementierung ist nicht zu schwierig. Es gibt einen Trick - Sie müssen eine einzelne Schnittstelle für jede passende Methode deklarieren.

%Vor%

Dann sollte der Bindungsadapter für die Ereignisse erstellt werden:

%Vor%     
George Mount 30.08.2016, 17:39
quelle