2013-09-18 5 views
0

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

// Удаление здесь

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

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

Заранее спасибо, 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 
       } 
      }); 
     } 
    } 

ответ

0

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

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

как этого решения, вы должны также Chech длина вами текст на забой ,

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

//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 

    } 
    }); 
+0

это то же, что и мой код, с backspace. Я не могу удалить тире и с вашим кодом. Спасибо за помощь, но требуемое решение удалить тире с backspace .. –

+0

Я изменил код в соответствии с вашими потребностями, попробуйте это сейчас! @jt. – Hamad

+0

Привет, Хамад, может быть, у вас не возник вопрос. Я хочу удалить DASH также с помощью backspace, когда я удаляю номер, DASH также должен быть удален с помощью backspace, когда я нажимаю на backspace, и что я не могу удалить его. должен быть необходим, чтобы удалить DASH с номерами на backspace .. –