Подтвердить что ты не робот

Как исключить специальные символы из клавиатуры Android для EditText

Привет, я хочу показать только цифры и символы на клавиатуре для EditText в android, я попытался добавить атрибут android:inputType = text|number, но это не сработало.

Пожалуйста, помогите мне с любым другим лучшим предложением. спасибо заранее.

4b9b3361

Ответ 1

попробуйте добавить параметр цифр в ваш editText:

android:digits="abcde.....012345789"

Ответ 2

Используйте фильтр для этого. Здесь я добавляю код для фильтра.

EditText etName = (EditText)findViewById(R.id.etName);
InputFilter filter = new InputFilter() { 
            @Override
            public CharSequence filter(CharSequence source, int start, int end, 
                            Spanned dest, int dstart, int dend) { 
                    for (int i = start; i < end; i++) { 
                            if (!Character.isLetterOrDigit(source.charAt(i))) { 
                                    return ""; 
                            } 
                    } 
                    return null; 
            }
};
etName.setFilters(new InputFilter[]{filter}); 

Ответ 3

Если вы хотите добавить пробелы, вы можете дать пробел после последней цифры.

 android:digits="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890 "

Ответ 4

  //大兄弟,这么做就可以了。 
  InputFilter filter = new InputFilter() {
        @Override
        public CharSequence filter(CharSequence source, int start, int end,
                                   Spanned dest, int dstart, int dend) {
            for (int i = start; i < end; i++) {
                if (isChineseChar(source.charAt(i))) {
                    return "";
                }
            }
            return null;
        }
    };
    etName.setFilters(new InputFilter[]{filter});

//一条简单的规则。
private static boolean isChineseChar(char c) {
    Character.UnicodeBlock ub = Character.UnicodeBlock.of(c);
    return ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS;
}

Ответ 5

Работает Ограничить специальный символ в редакторе

    private EditText your_editText ;
    private String blockCharacters = "(~*#^|$%&!";

    private InputFilter filter = new InputFilter() {

        @Override
        public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {

            if (source != null && blockCharacters.contains(("" + source))) {
                return "";
            }
            return null;
        }
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        your_editText = (EditText) findViewById(R.id.your_editText);
        your_editText .setFilters(new InputFilter[] { filter });
    }

}