2017-07-06 63 views
3

我想阻止用戶第二次輸入EditText中的字符,例如,如果輸入數字零,則表示沒問題,但如果要第二次輸入數字零,則應取消該操作。如何避免在Android Studio中的EditBox中輸入字符?

換句話說,我不希望用戶編寫00

有沒有辦法做到這一點?

+1

對於這一點,你需要實現editext.addTextChangedListener(新TextWatcher() – akhilesh0707

+0

你希望用戶只輸入唯一的字符或只有你想要取消,如果相同的字符連續輸入兩次? –

回答

2

你可以這樣來做:

EditText editText = new EditText(this); 
    InputFilter inputFilter = new InputFilter() { 
     @Override 
     public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) { 
      //Write your logic to remove the zero 
      //remove the zero here and return it. 
      return null; 
     }}; 

    editText.setFilters(new InputFilter[]{inputFilter}); 
+0

這將不允許用戶在任何時候輸入零...已經有一些預定義的過濾器在android像日期時間過濾器allcaps過濾器等。檢出和讓我知道.. – PranavKAndro

+0

感謝您的建議。還有一個問題,我如何刪除字符?再次感謝 –

+0

它與返回「」; –

0

試試這個。此實現刪除多餘的字符,但你會得到一個想法:

mEditText.addTextChangedListener(new TextWatcher() { 
     @Override 
     public void beforeTextChanged(CharSequence s, int start, int count, int after) { 

     } 

     @Override 
     public void onTextChanged(CharSequence s, int start, int before, int count) { 
      int length = s.length(); 
      for(int i=1;i<length;i++){ 
       if (s.charAt(i-1) == s.charAt(i)) { 
        mEditText.setText(s.subSequence(0, i)); 
        mEditText.setSelection(i); 
       } 
      } 
     } 

     @Override 
     public void afterTextChanged(Editable s) { 

     } 
    }); 
} 
相關問題