如何避免在Android Studio的EditBox中输入字符?

时间:2017-07-06 12:31:39

标签: android android-edittext

我想阻止用户第二次输入EditText中的字符,例如,如果输入数字0,则可以,但如果您想第二次输入数字0,该行动应该被取消。

换句话说,我不希望用户写00。

有什么办法吗?

2 个答案:

答案 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});

答案 1 :(得分: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) {

      }
  });
}