# Print output for @column tags ?>
Developers

- Design
- Develop
- Distribute

Developer Console

## Most visited

## Recently visited

## Results for

Summary: Ctors | Methods | Inherited Methods

# PhoneNumberFormattingTextWatcher

`public class PhoneNumberFormattingTextWatcher`
`extends Object` `implements TextWatcher`

java.lang.Object
↳ | android.telephony.PhoneNumberFormattingTextWatcher

Watches a `TextView` and if a phone number is entered will format it.

Stop formatting when the user

- Inputs non-dialable characters
- Removes the separator in the middle of string.

The formatting will be restarted once the text is cleared.

## Summary

### Public constructors
`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`.

### Public methods
`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`.

### Inherited methods
From class `java.lang.Object`
`Object` | `clone()` Creates and returns a copy of this object.
`boolean` | `equals(Object obj)` Indicates whether some other object is "equal to" this one.
`void` | `finalize()` Called by the garbage collector on an object when garbage collection determines that there are no more references to the object.
`final Class<?>` | `getClass()` Returns the runtime class of this `Object`.
`int` | `hashCode()` Returns a hash code value for the object.
`final void` | `notify()` Wakes up a single thread that is waiting on this object's monitor.
`final void` | `notifyAll()` Wakes up all threads that are waiting on this object's monitor.
`String` | `toString()` Returns a string representation of the object.
`final void` | `wait(long timeout, int nanos)` Causes the current thread to wait until another thread invokes the `notify()` method or the `notifyAll()` method for this object, or some other thread interrupts the current thread, or a certain amount of real time has elapsed.
`final void` | `wait(long timeout)` Causes the current thread to wait until either another thread invokes the `notify()` method or the `notifyAll()` method for this object, or a specified amount of time has elapsed.
`final void` | `wait()` Causes the current thread to wait until another thread invokes the `notify()` method or the `notifyAll()` method for this object.
From interface `android.text.TextWatcher`
`abstract void` | `afterTextChanged(Editable s)` This method is called to notify you that, somewhere within `s`, the text has been changed.
`abstract 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`.
`abstract 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 constructors

### PhoneNumberFormattingTextWatcher

    public PhoneNumberFormattingTextWatcher ()

The formatting is based on the current system locale and future locale changes may not take effect on this instance.

### PhoneNumberFormattingTextWatcher

    public PhoneNumberFormattingTextWatcher (String countryCode)

The formatting is based on the given `countryCode`.

Parameters
`countryCode` | `String`: the ISO 3166-1 two-letter country code that indicates the country/region where the phone number is being entered.

## Public methods

### afterTextChanged

    public void afterTextChanged (Editable s)

This method is called to notify you that, somewhere within `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` in `onTextChanged(CharSequence, int, int, int)` to mark your place and then look up from here where the span ended up.

Parameters
`s` | `Editable`

### beforeTextChanged

    public 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`. It is an error to attempt to make changes to `s` from this callback.

Parameters
`s` | `CharSequence`
`start` | `int`
`count` | `int`
`after` | `int`

### onTextChanged

    public 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`. It is an error to attempt to make changes to `s` from this callback.

Parameters
`s` | `CharSequence`
`start` | `int`
`before` | `int`
`count` | `int`

Full name *
Email address *
Company / developer name
One of your Play Store app URLs *
Which best describes your business:*
Apps
Games
Apps & Games
*
*