Dies ist eine etwas allgemeinere Antwort mit mehr Erklärung für zukünftige Zuschauer.
Fügen Sie einen Text-geänderten Listener hinzu
Wenn Sie die Textlänge ermitteln oder etwas anderes tun möchten, nachdem der Text geändert wurde, können Sie Ihrem Bearbeitungstext einen Listener für Textänderungen hinzufügen.
EditText editText = (EditText) findViewById(R.id.testEditText);
editText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence charSequence, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable editable) {
}
});
Der Hörer muss ein TextWatcher
, die drei Methoden erfordert wird außer Kraft gesetzt: beforeTextChanged
, onTextChanged
, und afterTextChanged
.
Die Zeichen zählen
Sie können die Anzahl der Zeichen in onTextChanged
oder beforeTextChanged
mit erhalten
charSequence.length()
oder in afterTextChanged
mit
editable.length()
Bedeutung der Methoden
Die Parameter sind etwas verwirrend, daher hier eine zusätzliche Erklärung.
beforeTextChanged
beforeTextChanged(CharSequence charSequence, int start, int count, int after)
charSequence
: Dies ist der Textinhalt, bevor die ausstehende Änderung vorgenommen wird. Sie sollten nicht versuchen, es zu ändern.
start
: Dies ist der Index, in den der neue Text eingefügt wird. Wenn ein Bereich ausgewählt ist, ist dies der Anfangsindex des Bereichs.
count
: Dies ist die Länge des ausgewählten Textes, der ersetzt werden soll. Wenn nichts ausgewählt ist, count
wird 0
.
after
: Dies ist die Länge des einzufügenden Textes.
onTextChanged
onTextChanged(CharSequence charSequence, int start, int before, int count)
charSequence
: Dies ist der Textinhalt nach der Änderung. Sie sollten hier nicht versuchen, diesen Wert zu ändern. Ändern Sie das editable
In, afterTextChanged
falls erforderlich.
start
: Dies ist der Index des Anfangs, an dem der neue Text eingefügt wurde.
before
: Dies ist der alte Wert. Dies ist die Länge des zuvor ausgewählten Texts, der ersetzt wurde. Dies ist der gleiche Wert wie count
in beforeTextChanged
.
count
: Dies ist die Länge des eingefügten Textes. Dies ist der gleiche Wert wie after
in beforeTextChanged
.
afterTextChanged
afterTextChanged(Editable editable)
Wie onTextChanged
diese aufgerufen wird , nachdem die Änderung bereits vorgenommen wurde. Jetzt kann der Text jedoch geändert werden.
editable
: Dies ist der bearbeitbare Text des EditText
. Wenn Sie es jedoch ändern, müssen Sie darauf achten, nicht in eine Endlosschleife zu geraten. Weitere Informationen finden Sie in der Dokumentation .