Создание поля EditText допускает только буквы и пробелы в Android
У меня есть поле EditText в моем проекте, которое обозначает полное имя человека. Поэтому я хочу, чтобы в нем были разрешены только буквы и пробелы. Поэтому я попробовал следующее в файле XML
android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ "
Но это не сработало. Может кто-нибудь сказать мне, как это сделать?
Ответы
Ответ 1
Попробуйте следующее:
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 "";
}
}
});
Ответ 2
Ниже меня изменили: -
android:digits="abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ"
Поместите пространство между строками. Если вы поместите пробел в конец строки, он автоматически обрезается.
Я использовал пробел после окончания небольших букв и начинал с заглавных букв.
Ответ 3
Добавьте эту строку в свой тег EditText.
Android: цифры = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
Тег EditText должен выглядеть так:
<EditText
android:id="@+id/edt"
android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
он работает отлично и не требуется условие проверки
update 1
регулярное выражение
src.toString().matches("[a-zA-Z ]+")
обновление 2
Достаточно справедливо, если в этом случае просто добавьте пробел между ними.
android: цифры = "abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ"
Ответ 4
Попробуйте это
android:digits="abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ"
Поместите пространство между строками. Если вы поместите пробел в конец строки, он будет автоматически отключен.
Я использовал пробел после окончания небольших букв и начала заглавных букв
Ответ 5
По какой-то причине включение "\n" не может происходить в конце строки, я искал документацию Google, но ничего не нашел. единственный способ добиться пробелов и разрыва строки - это в середине строки. См. Пример, который я использовал в одном из моих приложений.
android:digits="aãâáàbcçdeéfghiíjklmnoõôóòpqrstuvwxyzAÃÂÁÀBCÇDEÉFGHIÍJKLMNOÕÔÓÒ[email protected]_'+=(){}[]*%$#!?,.;\n: /?\\"
Ответ 6
Поместите пробел между строками ниже, это рабочий код.
android:digits="abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ "
Ответ 7
использовать regex..
шаблон должен быть
Full_Name_Pattern = "[A-Z][a-z]+( [A-Z][a-z]+)*";
Ответ 8
В вашем layout.xml
используйте следующее.
<EditText android:inputType="textPersonName" />
Ответ 9
это сработало для меня (пробелы посередине, а не в конце)
android: цифры = "abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ"