Android EditText: Auf Textänderungen warten und andere Felder leeren
Um sicherzustellen, dass nur eines von zwei Feldern Daten enthält, ist es unbedingt erforderlich Löschen Sie das andere Feld, wenn eines geändert wird. Dieser Bedarf entsteht in Situationen, in denen Feld1 und Feld2, zwei EditText-Felder, nicht beide gleichzeitig Werte enthalten sollten.
Wie in der Frage dargestellt, führt das Anhängen eines TextWatchers an Feld1 und Feld2 zu einer Endlosschleife, in der die Felder jeweils gelöscht werden andere auf unbestimmte Zeit.
Lösung:
Um dieses Problem zu beheben, implementieren Sie eine Prüfung, um das gegenüberliegende Feld nur dann zu löschen, wenn das aktuelle Feld Text enthält. Dies kann erreicht werden, indem die Länge der Eingabezeichenfolge untersucht wird.
Im modifizierten Code unten prüft eine „if“-Anweisung, ob die Länge der Eingabezeichenfolge (d. h. des in das aktuelle Feld eingegebenen Textes) beträgt ungleich 0. Wenn ja, wird das gegenüberliegende Feld gelöscht:
field1.addTextChangedListener(new TextWatcher() { @Override public void afterTextChanged(Editable s) {} @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { if(s.length() != 0) field2.setText(""); } }); field2.addTextChangedListener(new TextWatcher() { @Override public void afterTextChanged(Editable s) {} @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { if(s.length() != 0) field1.setText(""); } });
Durch die Einbindung dieser Prüfung wird die Endlosschleife unterbrochen und die gewünschte Funktionalität erreicht, wodurch sichergestellt wird, dass immer nur eines der Felder Daten enthält jederzeit.
Das obige ist der detaillierte Inhalt vonWie verhindere ich eine Endlosschleife beim Löschen von EditText-Feldern in Android?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!