2017-05-15 9 views
0

ich auf Android APP arbeite und ich möchte ein EditText Bereich machen lassen nur Alpha-Zeichen in 3 Sprachen.android Text bearbeiten Filter

Ich versuche, einen Filter auf meine EditText Gefällt Ihnen dieses Es arbeitet

firstNameEditText.setFilters(new InputFilter[]{new InputFilter() { 

     @Override 
     public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) { 
      boolean keepOriginal = true; 
      StringBuilder sb = new StringBuilder(end - start); 
      for (int i = start; i < end; i++) { 
       char c = source.charAt(i); 
       if (isCharAllowed(c)) // put your condition here 
        sb.append(c); 
       else 
        keepOriginal = false; 
      } 
      if (keepOriginal) 
       return null; 
      else { 
       if (source instanceof Spanned) { 
        SpannableString sp = new SpannableString(sb); 
        TextUtils.copySpansFrom((Spanned) source, start, sb.length(), null, sp, 0); 
        return sp; 
       } else { 
        return sb; 
       } 
      } 
     } 

     private boolean isCharAllowed(char c) { 
      Pattern ps = Pattern.compile("^[:alpha: ]+$"); 
      Matcher ms = ps.matcher(String.valueOf(c)); 
      return ms.matches(); 
     } 
    }}); 

hinzufügen, aber das Problem war: Ich kann keinen Platz in meinem EditText schreiben.

Antwort

0

Sie könnten nach dem Leerzeichen suchen: Character.isWhitespace(myChar) Also z.B. in Ihrer isCharAllowed Funktion, fügen Sie einfach

if(Character.isWhitespace(c)) return true; 
0

diese Eigenschaft in bearbeiten Text hinzufügen.

android:digits="abcdefghijklmnopqrstuvwxyz1234567890 " 

Diese Eigenschaft erlaubt keine anderen Zeichen.

Verwandte Themen