Wie kann ich für einen EditText auf Android mit onTextChanged arbeiten?

8

In Yigit Boyar und George Mount's Vortrag über Android Databinding zeigen sie, wie einfach es ist an TextWatcher s onTextChanged binden (um 13:41). Auf einem Knopf. Sind ihre Folien falsch? Zunächst einmal hat die Button View keine onTextChanged -Eigenschaft. Es hat auch keine setOnTextChanged -Methode. Genauso wenig wie EditText . Aber beide haben addTextChangedListener , was ein TextWatcher als Eingabe benötigt.

Worüber reden sie? Wie machen Sie das? Ihr Beispielcode kompiliert nicht, aber gibt diesen Fehler:

%Vor%

Wie verbinde ich mich mit einem "Text Changed Event" in einer beliebigen Ansicht oder insbesondere mit EditText mit dem Android Databinding Framework?

    
Nilzor 19.11.2015, 08:15
quelle

4 Antworten

30

Eigentlich funktioniert es out of the box. Ich glaube, mein Fehler war eine alte Version des Datenbindungs-Frameworks. Mit den neuesten, das ist die Vorgehensweise:

Anzeigen:

%Vor%

Modell:

%Vor%

Stellen Sie sicher, dass Sie auf die Tools zum Erstellen von Google Classes v1.5.0 oder höher zugreifen und die Datenbindung mit android.dataBinding.enabled true in Ihrem Build.gradle aktiviert haben.

edit: Funktionierendes Demo-Projekt hier . anzeigen . Modell .

    
Nilzor 21.11.2015, 09:30
quelle
7

Um @Nilzors Antwort zu erweitern, ist es auch möglich, Text und / oder andere Parameter im Layout zu übergeben:

Anzeigen:

%Vor%

ViewModel:

%Vor%

Sie müssen immer entweder Null oder alle Parameter übergeben.

    
Micer 17.08.2017 10:23
quelle
0

Fügen Sie ein setOnFocusChangeListener an das EditText an und verwenden Sie den textuellen Inhalt mit einer globalen Variablen (des vorherigen Zustands / Inhalts des Feldes), um festzustellen, ob es sich geändert hat:

%Vor%     
joakimk 20.11.2015 21:21
quelle
0

Der Code sollte nicht ausgeführt werden. Laut API-Dokumenten haben weder TextView noch EditText das XML-Attribut "onTextChanged". Sie unterstützen die "addTextChangedListener" -Methode, aber ich bin mir nicht sicher, wie das mit der Datenbindung funktioniert.

Ссылка Ссылка

    
Mark Lu 28.07.2016 01:19
quelle

Tags und Links