Как ограничить EditText только указанными символами в android?

Я хочу ограничить свой EditText только конкретными символами, такими как (az, AZ, 0-9, пробел и т. Д.).

Если пользователь пытается ввести некоторые другие символы за пределы списка, он не должен отображаться в edittext.

Есть какой-либо способ сделать это?

Попробуй это:

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.isLetterOrDigit(source.charAt(i))) { return ""; } } return null; } }; edit.setFilters(new InputFilter[]{filter}); 

Проверка Как я могу фильтровать данные ListView при вводе в EditText в android

Вот решение для вас ….

Просто добавьте символы в строку, которую вы хотите allowed

  final String allowed = "abcdefghijklmnopqrstuvwxyz"; final EditText editText = (EditText)findViewById(R.id.edit001); editText.addTextChangedListener(new TextWatcher() { @Override public void onTextChanged(CharSequence s, int start, int before, int count) { char currentChar = s.charAt(start); System.out.println(currentChar); if(allowed.contains(Character.toString(currentChar))) { //Nothing to do } else { editText.setText(editText.getText().toString().substring(0, editText.getText().toString().length()-1)); int position = editText.length(); Editable etext = editText.getText(); Selection.setSelection(etext, position); } } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { // TODO Auto-generated method stub } @Override public void afterTextChanged(Editable arg0) { // TODO Auto-generated method stub } }); 

Вы можете использовать это

yourEditText.addTextChangedListener()

То вы видите, соответствует ли пользовательский ввод вашим ограничениям или нет, и выберите, какие символы будут отображаться.