public class PhoneNumberFormattingTextWatcher extends Object implements TextWatcher
TextView
and if a phone number is entered
will format it.
Stop formatting when the user
The formatting will be restarted once the text is cleared.
NoCopySpan.Concrete
Constructor and Description |
---|
PhoneNumberFormattingTextWatcher()
The formatting is based on the current system locale and future locale changes
may not take effect on this instance.
|
PhoneNumberFormattingTextWatcher(String countryCode)
The formatting is based on the given
countryCode . |
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 . |
public PhoneNumberFormattingTextWatcher()
public PhoneNumberFormattingTextWatcher(String countryCode)
countryCode
.countryCode
- the ISO 3166-1 two-letter country code that indicates the country/region
where the phone number is being entered.public void beforeTextChanged(CharSequence s, int start, int count, int after)
TextWatcher
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.beforeTextChanged
in interface TextWatcher
public void onTextChanged(CharSequence s, int start, int before, int count)
TextWatcher
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.onTextChanged
in interface TextWatcher
public void afterTextChanged(Editable s)
TextWatcher
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 TextWatcher.onTextChanged(java.lang.CharSequence, int, int, int)
to mark your place and then look up from here where the span
ended up.afterTextChanged
in interface TextWatcher