Android Space Bar无效

时间:2016-04-06 08:38:52

标签: android android-edittext android-widget android-softkeyboard

在我的Android项目中,我限制Edittext仅允许Alphanumeric个字符。我使用下面的代码片段来实现这个

    <EditText
            android:id="@+id/edt_text"
            android:layout_width="140dp"      
            android:layout_height="wrap_content"                                   
            android:layout_margin="5dp"                                                 
            android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"
            android:ems="10"
            android:imeOptions="actionNext"
            android:maxLength="8"
            android:padding="5dp"
            android:singleLine="true" />

但是在使用此代码时,如果我选中Space Bar中显示的soft keypad,它将作为BackSpace按钮并删除EditText中的字符。任何人都可以帮我解决这个问题。

4 个答案:

答案 0 :(得分:1)

使用此RegEx,如果它是字母数字,它将返回true,否则它将返回false。

public boolean isAlphaNumeric(String s){
    String pattern= "^[a-zA-Z0-9]*$";
        if(s.matches(pattern)){
            return true;
        }
        return false;   
}

答案 1 :(得分:1)

你也可以用Programet来处理这个。

mEditText1.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) {
            if (s.equals(" ")) {
                mEditText1.getText().toString().trim();
            }
        }

        @Override
        public void afterTextChanged(Editable s) {

        }
    });

我希望它可以帮到你。 :)

答案 2 :(得分:1)

我知道这已经太晚了,但问题在于您设置的input数字限制。

sample

答案 3 :(得分:0)

如何让空格键创建空格,并以编程方式删除它?