Antworten:
Diese Ereignisse werden in der folgenden Reihenfolge aufgerufen:
beforeTextChanged (CharSequence s, int start, int count, int after) .
Dies bedeutet, dass die Zeichen durch neuen Text ersetzt werden sollen. Der Text kann nicht bearbeitet werden.
Verwendung: Wenn Sie sich den alten Text ansehen müssen, der sich ändern wird.
onTextChanged (CharSequence s, int start, int before, int count) .
Änderungen wurden vorgenommen, einige Zeichen wurden gerade ersetzt. Der Text kann nicht bearbeitet werden.
Verwendung: Wenn Sie sehen möchten, welche Zeichen im Text neu sind.
afterTextChanged (bearbeitbare s) .
Das gleiche wie oben, außer dass der Text jetzt bearbeitet werden kann .
Verwendung: Wenn Sie den neuen Text sehen und möglicherweise bearbeiten müssen.
Wenn ich nur auf Änderungen in höre EditText
, muss ich die ersten beiden Methoden überhaupt nicht verwenden. Ich werde nur neue Werte in der dritten Methode erhalten und bei Bedarf neuen Text korrigieren. Wenn ich jedoch genaue Änderungen an den Werten feststellen müsste, würde ich die ersten beiden Methoden verwenden. Wenn ich den Text nach dem Anhören der Änderungen auch bearbeiten müsste, würde ich dies bei der dritten Methode tun.
public void afterTextChanged (Editable s)
Diese Methode wird aufgerufen, um Sie darüber zu informieren, dass
s
der Text irgendwo innerhalb geändert wurde. Es ist legitim, weitere Änderungen ans
diesem Rückruf vorzunehmen. Achten Sie jedoch darauf, dass Sie nicht in eine Endlosschleife geraten, da Änderungen, die Sie vornehmen, dazu führen, dass diese Methode rekursiv erneut aufgerufen wird. (Sie sind nicht gesagt , wo der Wechsel stattfand , weil andere afterTextChanged () -Methoden bereits andere Änderungen vorgenommen haben und für ungültig erklärt die Offsets. Aber wenn Sie hier wissen, können SiesetSpan(Object, int, int, int)
inonTextChanged(CharSequence, int, int, int)
Ihrem Platz markieren und dann von hier nachschlagen , wo Die Spanne endete.
public void beforeTextChanged (CharSequence s, int start, int count, int after)
Diese Methode wird aufgerufen, um Sie darüber zu informieren, dass
s
diecount
Zeichen , die bei beginnenstart
, durch neuen Text mit Länge ersetzt werden sollenafter
. Es ist ein Fehler, zu versuchen, Änderungen ans
diesem Rückruf vorzunehmen .
public void onTextChanged (CharSequence s, int start, int before, int count)
Diese Methode wird aufgerufen, um Sie darüber zu informieren, dass innerhalb
s
dercount
Zeichen , die bei beginnenstart
, gerade alter Text mit Länge ersetzt wurdebefore
. Es ist ein Fehler, zu versuchen, Änderungen ans
diesem Rückruf vorzunehmen .
Direkt aus der Android-Referenz für TextWatcher .
Android Textwatcher
ist eine Art von Trigger, der beim Textwechsel eines Eingabefeldes aufgerufen wird.
afterTextChanged (Editable s)
- Diese Methode wird aufgerufen, wenn der Text geändert wurde. Da Änderungen, die Sie vornehmen, dazu führen, dass diese Methode rekursiv erneut aufgerufen wird, müssen Sie bei der Ausführung von Operationen hier aufpassen, da dies sonst zu einer Endlosschleife führen kann .
onTextChanged (CharSequence s, int start, int before, int count)
- Diese Methode wird aufgerufen, um Sie darüber zu informieren, dass innerhalb von s die am Anfang beginnenden Zählzeichen den alten Text ersetzt haben, der zuvor eine Länge hatte. Es ist ein Fehler, zu versuchen, über diesen Rückruf Änderungen an s vorzunehmen.