Validation allow only number and characters in edit text in android

后端 未结 9 1382
抹茶落季
抹茶落季 2020-11-27 16:20

In my application I have to validate the EditText. It should only allow character, digits, underscores, and hyphens.

Here is my code:

edit         


        
相关标签:
9条回答
  • 2020-11-27 17:00

    This can be useful, especially if your EditText should allow diacritics (in my case, Portuguese Diacritic):

    <EditText
       android:digits="0123456789AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZzÁáÂâÃãÀàÇçÉéÊêÍíÓóÔôÕõÚú"
    />
    
    0 讨论(0)
  • 2020-11-27 17:00
    InputFilter filter = new InputFilter() {
        public CharSequence filter(CharSequence source, int start,
            int end, Spanned dest, int dstart, int dend) {
    
            for (int i = start; i < end; i++) {
                if (!Character.toString(source.charAt(i)).matches("[a-zA-Z0-9-_]+")) {
                    return "";
                    edittext.setError("Only letters, digits, _ and - allowed");
                }
            }
            return null;
        }
    };
    edittext.setFilters(new InputFilter[] { filter });
    
    0 讨论(0)
  • 2020-11-27 17:07

    Try this:

    public static SpannableStringBuilder getErrorMsg(String estring) {
            int ecolor = Color.BLACK; // whatever color you want
            ForegroundColorSpan fgcspan = new ForegroundColorSpan(ecolor);
            SpannableStringBuilder ssbuilder = new SpannableStringBuilder(estring);
            ssbuilder.setSpan(fgcspan, 0, estring.length(), 0);
            return ssbuilder;
        }
    

    Then setError() to EditText when you want show 'only Letters and digits are allowed' as below.

    etPhone.setError(getErrorMsg("Only lowercase letters and numbers are allowed!"));
    

    Hope this will help you. I use the same for Validation Check in EditText in my apps.

    0 讨论(0)
  • 2020-11-27 17:09
    <EditText 
      android:inputType="text" 
      android:digits="0,1,2,3,4,5,6,7,8,9,*,qwertzuiopasdfghjklyxcvbnm,_,-" 
      android:hint="Only letters, digits, _ and - allowed"
    />
    

    the above code will also include , additionally to avoid , use the following code

    <EditText 
      android:inputType="text" 
      android:digits="0123456789qwertzuiopasdfghjklyxcvbnm_-"
      android:hint="Only letters, digits, _ and - allowed"
    />
    
    0 讨论(0)
  • 2020-11-27 17:10

    use this 2 function

    public static boolean isdigit(EditText input)
        {
    
        String data=input.getText().toString().trim();
        for(int i=0;i<data.length();i++)
        {
             if (!Character.isDigit(data.charAt(i)))
                    return false;
    
        }
        return true;
        }
    
        public static boolean ischar(EditText input)
        {
    
        String data=input.getText().toString().trim();
        for(int i=0;i<data.length();i++)
        {
             if (!Character.isDigit(data.charAt(i)))
                    return true;
    
        }
        return false;
        }
    

    pass Edittext variable in these function .. so you can have boolean value.

    0 讨论(0)
  • 2020-11-27 17:10

    You can validate this by two ways , both worked for me, hope will be helpful for you too.

    1> Mentioning the chars in your edittext .

    android:digits="0,1,2,3,4,5,6,7,8,9,*,qwertzuiopasdfghjklyxcvbnm,_,-" 
    

    2> Can validate pragmatically as answered by milos pragmatically

    0 讨论(0)
提交回复
热议问题