Format EditText view for phone numbers

后端 未结 8 1800
既然无缘
既然无缘 2020-12-28 20:49

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

8条回答
  •  庸人自扰
    2020-12-28 21:00

    Try this

    The PhoneNumberFormattingTextWatcher() method was not working i tried allot finally i get the solutions

    1. In your xml file paste this

      
      
    2. 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:-

提交回复
热议问题