Android EditText文本輸入框禁止輸入空格

常規操作是定一個InputFilter,然後給EditText控件添加關聯解決如下:
step1:

// 禁止EditText輸入空格
private InputFilter filter = (source, start, end, dest, dstart, dend) -> {
    if (source.equals(" ")) return "";
    else return null;
};

step2:

pwdEdt.setFilters(new InputFilter[]{filter});

But,今天遇到個情況這個InputFilter不好使了,找了半天原因是衝突在android:inputType="textPassword"這個屬性上了,當我的EditText作爲密碼框使用的時候InputFilter不起作用了,只能用笨辦法TextWatcher搞定了,代碼稍微多幾行:

TextWatcher textChanged = new TextWatcher() {

    @Override
    public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {

    }

    @Override
    public void onTextChanged(CharSequence charSequence, int start, int before, int count) {
        // 禁止EditText輸入空格
        if (charSequence.toString().contains(" ")) {
            String[] str = charSequence.toString().split(" ");
            StringBuffer sb = new StringBuffer();
            for (int i = 0; i < str.length; i++) {
                sb.append(str[i]);
            }
            pwdEdt.setText(sb.toString());
            pwdEdt.setSelection(start);
        }
    }

    @Override
    public void afterTextChanged(Editable editable) {

    }
};

然後pwdEdt.addTextChangedListener(textChanged);添加關聯解決。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章