Проверка ввода в Android, достаточно ли объявить тип ввода - PullRequest
1 голос
/ 18 октября 2011

В моей деятельности есть несколько полей, все из которых принимают целые числа и только целые числа. Оглядываясь на SO здесь, я вижу, что самый простой способ выполнить проверку - просто объявить InputType Integer в моем layout.xml Это отлично работает. Пользователь может только вводить цифры, и моя бизнес-логика счастлива. Он также может обрабатывать пустые поля. Однако мне было интересно, есть ли какой-нибудь способ, которым пользователь может ввести нечисловое значение? Должен ли я быть в состоянии справиться с этим? Если ответ «да», то это означает, что мне нужно будет обновить все свои модульные тесты вместе с проверкой полей в моем приложении, но я бы предпочел доверить это ОС Android.

Ответы [ 2 ]

2 голосов
/ 18 октября 2011

Если вы правильно используете InputType, пользователь не сможет вводить символы, не указанные этим InputType.

1 голос
/ 18 октября 2011

, если вам это нужно, вы можете использовать InputFilter для предотвращения ввода / вставки недопустимых символов в EditText.

InputFilter filter = new InputFilter() {
    @Override
    public CharSequencefilter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
        for(int i = start; i < end; i++) {
            if(!Character.isDigit(source.charAt(i))) {
                return "";
            }
        }
        return null;
    }
}
...