在EditText android中禁用SPACE键

Sau*_*ngh 6 android keycode keyevent android-edittext

我创建了EditText,如下所示.

<EditText
        android:id="@+id/et_regis_num"
        android:maxLines="1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:digits="1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ"
        android:hint="@string/txt_reg_num"
        android:inputType="textCapCharacters"
        android:maxLength="10" />
Run Code Online (Sandbox Code Playgroud)

在这个edittext中,我不想按SPACE键,但是当我按下SPACE键时,它正在作为BACKSPACE键.意味着它每次按两次按下一个字符.

Anj*_*tix 5

设置InputFilterEditText。请检查以下答案,它对我有用。

InputFilter filter = new InputFilter() {
    public CharSequence filter(CharSequence source, int start, int end,
        Spanned dest, int dstart, int dend) {
        for (int i = start; i < end; i++) {
            if (Character.isWhitespace(source.charAt(i))) {
                return "";
            }
        }
        return null;
    }
};

edtTxt.setFilters(new InputFilter[] { filter });
Run Code Online (Sandbox Code Playgroud)


Muj*_*med 4

只需在编辑文本中留出空间并将空间替换为空,

    @Override
    public void afterTextChanged(Editable s) {
    String result = s.toString().replaceAll(" ", "");
    if (!s.toString().equals(result)) {
         ed.setText(result);
         ed.setSelection(result.length());
         // alert the user
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 我试过这个,当我按空格键两次时,它只删除最后一个字符 (2认同)