4

В моем проекте Android я ограничил Edittext, чтобы разрешить только Alphanumeric символов. Я с помощью ниже фрагмента кода для достижения этойAndroid Space Bar не работает

<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. Кто-нибудь, пожалуйста, помогите мне решить эту проблему.

+0

не нужен '' Space' в Edittext' – Jamal

ответ

0

Как насчет того, чтобы позволить пробелу создать пространство и просто удалить его программно?

1

использовать этот RegEx, он вернет true, если он буквенно-цифровой, он вернет false.

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

, где мне нужно использовать это, вы можете уточнить это? – Jamal

+0

if (isAlphaNumeric (getUserName), где getUserName - это строка, введенная пользователем в EditText ... –

1

Вы также можете обращаться с этим программным способом.

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) { 

     } 
    }); 

Надеюсь, это может вам помочь. :)

0

Я знаю, что это слишком поздно, но проблема в том, что вы указали ограничение в input.

sample