public interface TextWatcher extends NoCopySpan
NoCopySpan.Concrete
Modifier and Type | Method and Description |
---|---|
void |
afterTextChanged(Editable s)
This method is called to notify you that, somewhere within
s , the text has been changed. |
void |
beforeTextChanged(CharSequence s,
int start,
int count,
int after)
This method is called to notify you that, within
s ,
the count characters beginning at start
are about to be replaced by new text with length after . |
void |
onTextChanged(CharSequence s,
int start,
int before,
int count)
This method is called to notify you that, within
s ,
the count characters beginning at start
have just replaced old text that had length before . |
void beforeTextChanged(CharSequence s, int start, int count, int after)
s
,
the count
characters beginning at start
are about to be replaced by new text with length after
.
It is an error to attempt to make changes to s
from
this callback.void onTextChanged(CharSequence s, int start, int before, int count)
s
,
the count
characters beginning at start
have just replaced old text that had length before
.
It is an error to attempt to make changes to s
from
this callback.void afterTextChanged(Editable s)
s
, the text has been changed.
It is legitimate to make further changes to s
from
this callback, but be careful not to get yourself into an infinite
loop, because any changes you make will cause this method to be
called again recursively.
(You are not told where the change took place because other
afterTextChanged() methods may already have made other changes
and invalidated the offsets. But if you need to know here,
you can use Spannable.setSpan(java.lang.Object, int, int, int)
in onTextChanged(java.lang.CharSequence, int, int, int)
to mark your place and then look up from here where the span
ended up.