4

In meinem Android-Projekt habe ich Edittext eingeschränkt, um nur Alphanumeric Zeichen zu erlauben. Ich habe unten Code-Schnipsel mit dieserAndroid Space Bar funktioniert nicht

<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" /> 

zu erreichen Aber während diesen Code verwenden, wenn ich auf das Register zeigt Space Bar in soft keypad es als BackSpace Taste wirkt, und die Zeichen in EditText entfernen. Bitte helfen Sie mir, dieses Problem zu lösen.

+0

Ich brauche nicht eine '' space' in Edittext' – Jamal

Antwort

0

Wie wäre es mit der Leertaste, einen Space zu erstellen und ihn nur programmgesteuert zu entfernen?

1

Verwenden Sie diese RegEx es wird True zurückgegeben, wenn es alphanumerisch ist, sonst wird es false zurückgeben.

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

, wo ich diese verwenden müssen, können Sie es näher erläutern? – Jamal

+0

if (isAlphaNumeric (getUserName) wobei getUserName der String ist, den der Benutzer in EditText eingegeben hat ... –

1

Sie können dies auch programmatisch handhaben.

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

     } 
    }); 

Ich hoffe, es kann Ihnen helfen. :)

0

Ich weiß, es ist sehr zu spät, aber das Problem ist in der input Ziffer Einschränkung, die Sie festgelegt haben.

sample