I have an EditText view and I want it to format the user\'s input into the phone number format. For example, when the user types in 1234567890, the EditText view should dyna
The PhoneNumberFormattingTextWatcher() method was not working i tried allot finally i get the solutions
In your xml file paste this
in your oncreate method paste this
final EditText editText = (EditText) findViewById(R.id.editTextId);
editText.addTextChangedListener(new TextWatcher()
{
@Override
public void onTextChanged(CharSequence s, int start, int before, int count)
{
// TODO Auto-generated method stub
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after)
{
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s)
{
String text = editText.getText().toString();
int textLength = editText.getText().length();
if (text.endsWith("-") || text.endsWith(" ") || text.endsWith(" "))
return;
if (textLength == 1) {
if (!text.contains("("))
{
editText.setText(new StringBuilder(text).insert(text.length() - 1, "(").toString());
editText.setSelection(editText.getText().length());
}
}
else if (textLength == 5)
{
if (!text.contains(")"))
{
editText.setText(new StringBuilder(text).insert(text.length() - 1, ")").toString());
editText.setSelection(editText.getText().length());
}
}
else if (textLength == 6)
{
editText.setText(new StringBuilder(text).insert(text.length() - 1, " ").toString());
editText.setSelection(editText.getText().length());
}
else if (textLength == 10)
{
if (!text.contains("-"))
{
editText.setText(new StringBuilder(text).insert(text.length() - 1, "-").toString());
editText.setSelection(editText.getText().length());
}
}
else if (textLength == 15)
{
if (text.contains("-"))
{
editText.setText(new StringBuilder(text).insert(text.length() - 1, "-").toString());
editText.setSelection(editText.getText().length());
}
}
else if (textLength == 18)
{
if (text.contains("-"))
{
editText.setText(new StringBuilder(text).insert(text.length() - 1, "-").toString());
editText.setSelection(editText.getText().length());
}
}
}
});
OUTPUT:-