как удалить формат номера телефона Dash формы XXX-XXX-XXXX в Android

Может ли кто-нибудь помочь мне решить эту проблему.? Я добавил тире (-) между телефонными номерами. Здесь Ниже я упомянул свой код.

// Убираем отсюда

Теперь я хочу удалить тире (-), когда я нажимаю кнопку «Назад». В моем случае я не могу этого сделать. Скажем, если я вставлю 3 символа, то Dash автоматически добавит после этого три числа, тогда, если я нажму кнопку «Назад», я не смогу удалить тире и даже те три числа, которые стоят перед тире.

Мне пришлось выделить весь текст, а затем нажать «Удалить», а затем «Он будет удален». Может ли кто-нибудь дать мне код ответа на это .. ??

Заранее спасибо, JT.


Обновление отсюда

public class MainActivity extends Activity {
        EditText inputPhone;
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.create_new_member);
            inputPhone = (EditText) findViewById(R.id.phoneText);
            inputPhone.addTextChangedListener(new TextWatcher() {
                int len = 0;
                @Override
                public void onTextChanged(CharSequence s, int start, int before, int count) {
                    // TODO Auto-generated method stub
                    String str = inputPhone.getText().toString();
                    if ((str.length() == 3 && len < str.length()) || (str.length() == 7 && len < str.length())) {
                        inputPhone.append("-");
                    }
                }
                @Override
                public void beforeTextChanged(CharSequence s, int start, int count, int after) {
                    String str = inputPhone.getText().toString();
                    len = str.length();
                }
                @Override
                public void afterTextChanged(Editable s) {
                    // TODO Auto-generated method stub
                }
            });
        }
    }

person jt.    schedule 18.09.2013    source источник


Ответы (1)


следуйте этому методу, тогда ваша проблема будет решена

http://www.shaikhhamadali.blogspot.com/2013/06/how-to-apply-niccustom-format-to-edit.html

как и это решение, вы также должны проверить длину текста на возврате.

отметьте это как ответ для помощи другим.

    //get the reference of this edit text field
     EditText  etNICNO_Sender=(EditText)findViewById(R.id.etNICNO_Sender);
        /*add textChangeListner with TextWatcher argument
            by adding text change listner with text watcher we can get three methods of
            Edit Text 1) onTextChanged 2) beforeTextChanged 3) afterTextChanged
            these methods work when user types in text feild.
         */
 etNICNO_Sender.addTextChangedListener(new TextWatcher() {
   int len=0;
   @Override
   public void onTextChanged(CharSequence s, int start, int before, int count) {
    // TODO Auto-generated method stub

  String str = etNICNO_Sender.getText().toString();

  if((str.length()==3 && len <str.length()) || (str.length()==7 && len <str.length())){
                  //checking length  for backspace.
                  etNICNO_Sender.append("-");
                  //Toast.makeText(getBaseContext(), "add minus", Toast.LENGTH_SHORT).show();
                 }
   }
   @Override
   public void beforeTextChanged(CharSequence s, int start, int count,
     int after) {
    // TODO Auto-generated method stub
    String str = etNICNO_Sender.getText().toString();
                         len = str.length();
        }
   @Override
   public void afterTextChanged(Editable s) {
    // TODO Auto-generated method stub

   }
  });
person Hamad    schedule 18.09.2013
comment
это то же самое, что и мой код, с возвратом я не могу удалить тире, с вашим кодом тоже. Спасибо за помощь, но требуется решение удаления тире с помощью backspace.. - person jt.; 18.09.2013
comment
Я изменил код в соответствии с вашими потребностями, попробуйте прямо сейчас! @jt. - person Hamad; 18.09.2013
comment
Привет, Хамад. Может быть, вы не поняли мой вопрос. Я хочу удалить DASH также с помощью Backspace, когда я удаляю номер, DASH также должен быть удален с помощью Backspace, когда я нажимаю на Backspace, и я не могу удалить его. необходимо удалить DASH с цифрами на backspace.. - person jt.; 18.09.2013
comment
я понял вопрос, я решил свою проблему с этим кодом, также удалив тире в формате, не знаю, почему ваша проблема не решается. Вы совершаете какую-либо другую ошибку в своем коде? - person Hamad; 18.09.2013
comment
Здравствуйте, сэр, я обновил свой код .. вы можете проверить его .. И предложить мне, если я допустил какие-либо ошибки в нем .. Не знаю, почему он не работает на моем телефоне или эмуляторе .. - person jt.; 18.09.2013
comment
Я только что скопировал ваш код и создал демонстрационный проект, он сработал отлично! - person Hamad; 18.09.2013
comment
Вы очистили свой проект и запустили его снова? @jt. - person Hamad; 18.09.2013
comment
давайте продолжим обсуждение в чате - person jt.; 18.09.2013