2014-09-26 11 views

risposta

13

provate questo:

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

uso regex .. modello dovrebbe essere

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

aggiungere questa riga nel tag EditText.

Android: cifre = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"

Il tag EditText dovrebbe essere simile:

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

funziona perfettamente e senza condizione di convalida richiesto


aggiornamento 1

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


aggiornamento 2

Va bene se questo è il caso, allora è sufficiente aggiungere uno spazio in mezzo.

Android: cifre = "abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ"

+2

Ma quanto sopra non consente spazi ... –

+1

@AchuthanM che non consente di specificare gli spazi nella domanda. –

+0

@AchuthanM abbastanza giusto se questo è il caso, quindi semplicemente aggiungere ** 'spazio' ** nel mezzo. – Gattsu

0

Utilizza il seguente nella vostra nel vostro layout.xml.

<EditText android:inputType="textPersonName" /> 
2

Per qualche motivo l'inclusione di "\ n" non può avvenire alla fine della stringa, ho cercato la documentazione di Google, più trovato nulla. l'unico modo per ottenere spazi e interruzioni di riga è includere nel mezzo della stringa. Guarda l'esempio che ho usato in una delle mie app.

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

Prova questa

android:digits="abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ"

spazio Mettere tra le corde. Se si mette lo spazio alla fine di una stringa, questo verrà automaticamente eliminato.

Ho usato lo spazio dopo la fine delle lettere minuscole e l'avvio delle lettere maiuscole

+0

Perché questo dovrebbe funzionare, mentre la stringa di OP no? Spiega per favore. – feedMe

+0

Ho usato questo e questo funziona per me. Se si aggiunge spazio dopo la stringa o prima della stringa verrà tagliato –

+0

@feedMe OP ha aggiunto spazio alla fine, se si aggiunge spazio dopo la stringa, verrà ignorata. – Gattsu

0

questo ha funzionato per me (spazi bianchi in mezzo, non alla fine) Android: cifre = "abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ"

1

Si prega di mettere lo spazio tra come sotto stringa, funziona codice.

android:digits="abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ " 
5

Sotto il cambiamento ha lavorato per me: -

android:digits="abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ" 

spazio Mettere tra le corde. Se si mette lo spazio alla fine di una stringa, esso si ritaglierà automaticamente.

Ho usato lo spazio dopo la fine di lettere minuscole e iniziando con lettere maiuscole.

+0

Grazie, aiutami –

Problemi correlati