Выше приведен правильный ответ, но он работает с конкретной страной.если кто-то хочет такой форматированный номер телефона (### - ### - ####).Затем используйте это:
etPhoneNumber.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
int digits = etPhoneNumber.getText().toString().length();
if (digits > 1)
lastChar = etPhoneNumber.getText().toString().substring(digits-1);
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
int digits = etPhoneNumber.getText().toString().length();
Log.d("LENGTH",""+digits);
if (!lastChar.equals("-")) {
if (digits == 3 || digits == 7) {
etPhoneNumber.append("-");
}
}
}
@Override
public void afterTextChanged(Editable s) {
}
});
Объявите String lastChar = " "
в своей деятельности.
Теперь добавьте эту строку в xml вашего текста редактирования
android:inputType="phone"
Вот и все.
Отредактировано: Если вы хотите, чтобы длина вашего текста редактирования ограничивалась 10 цифрами, добавьте также строку ниже:
android:maxLength="12"
(это 12, потому что "-" займет пробел два раза)