2014-09-26 3 views

Antwort

13

Try this:

EditText yourEditText = (EditText) findViewById(R.id.yourEditText); 
yourEditText.setFilters(new InputFilter[] { 
    new InputFilter() { 
     @Override 
     public CharSequence filter(CharSequence cs, int start, 
        int end, Spanned spanned, int dStart, int dEnd) { 
      // TODO Auto-generated method stub 
      if(cs.equals("")){ // for backspace 
       return cs; 
      } 
      if(cs.toString().matches("[a-zA-Z ]+")){ 
       return cs; 
      } 
      return ""; 
     } 
    } 
}); 
0

Verwendung Regex .. sollte Muster sein

Full_Name_Pattern = "[A-Z][a-z]+([A-Z][a-z]+)*"; 
3

Fügen Sie diese Zeile in Ihrem EditText-Tag.

android: Stellen = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"

Ihr EditText Tag sollte wie folgt aussehen:

<EditText 
     android:id="@+id/edt" 
     android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" /> 

es perfekt funktioniert und keine Validierung Bedingung erforderlich


Update 1

regex src.toString().matches("[a-zA-Z ]+")


Update 2

Fair enough, wenn das der Fall ist dann einfach Leerzeichen dazwischen.

android: Stellen = "abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ"

+2

Aber die oben genannten nicht zulassen, Leerzeichen ... –

+1

@AchuthanM erlaubt Leerzeichen wurde in der Frage nicht erwähnt. –

+0

@AchuthanM Fairerweise, wenn das der Fall ist, fügen Sie einfach ** 'Leerzeichen' ** dazwischen hinzu. – Gattsu

0

Verwendung im Anschluss an die in Ihrem in Ihrem layout.xml.

2

Aus irgendeinem Grund die Aufnahme von "\ n" kann nicht am Ende der Zeichenfolge auftreten, ich habe die Google-Dokumentation gesucht, die meisten nichts gefunden. Der einzige Weg, um Leerzeichen und Zeilenumbrüche zu erzielen, ist das Einfügen in die Mitte der Zeichenfolge. Siehe das Beispiel, das ich in einer meiner Apps verwendet habe.

android:digits="aãâáàbcçdeéfghiíjklmnoõôóòpqrstuvwxyzAÃÂÁÀBCÇDEÉFGHIÍJKLMNOÕÔÓÒ[email protected]_'+=(){}[]*%$#!?,.;\n: /?\\" 
3

diesen Versuchen zwischen den Saiten

android:digits="abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ"

Put Raumes. Wenn Sie am Ende einer Zeichenfolge Leerzeichen einfügen, wird diese automatisch abgeschnitten.

I Raum haben nach Beendigung der kleinen Buchstaben verwendet und beginnen von Großbuchstaben

+0

Warum sollte das funktionieren, während die Zeichenfolge von OP nicht? Bitte erkläre. – feedMe

+0

Ich habe das verwendet und das funktioniert für mich. Wenn Sie nach der Zeichenkette oder vor der Zeichenkette Leerzeichen hinzufügen, wird diese getrimmt. –

+0

@feedMe OP hatte am Ende Platz hinzugefügt. Wenn Sie nach der Zeichenkette Leerzeichen hinzufügen, wird diese ignoriert. – Gattsu

0

dies für mich gearbeitet (Leerzeichen in der Mitte, nicht am Ende) android: Stellen = „abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ“

1

Bitte legen Sie Abstand zwischen wie unten Zeichenfolge, es Arbeitscode.

android:digits="abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ " 
5

Below Veränderung für mich gearbeitet: -

android:digits="abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ" 

Put Raum zwischen den Saiten. Wenn Sie am Ende eines Strings Platz finden, wird es automatisch abgeschnitten.

Ich habe Platz nach dem Ende der kleinen Buchstaben und beginnend mit Großbuchstaben verwendet.

+0

Danke, es hilft mir –

Verwandte Themen