Возьмите только одного персонажа от пользователя в Android - PullRequest
0 голосов
/ 10 августа 2011

Я хочу, чтобы пользователь вводил только один символ. Я думал сделать кнопки для каждой буквы, но это бесполезно. Не могли бы вы порекомендовать что-нибудь, чтобы преодолеть эту проблему? Заранее спасибо ..

Ответы [ 2 ]

2 голосов
/ 10 августа 2011

Вы можете использовать InputFilter.LengthFilter , чтобы ограничить количество символов, которое можно ввести в текстовое поле, и пользовательский InputFilter , чтобы ограничить допустимые символы;это звучит как самый простой подход ко мне.

Вот пример:

EditText myTextField = (EditText) findViewById(R.id.my_text);

InputFilter validCharsInputFilter = new InputFilter() {

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

            // Loop through characters being inserted
            for (int i = start; i < end; i++) {

                // If it is not a letter 
                if (!Character
                        .isLetter(source.charAt(i))) {

                    // Return empty string - as char not allowed
                    return "";
                }
            }

            // If we've got this far, then return null to accept string
            return null;
        }
    };

myTextField.setFilters(
        new InputFilter[] { new InputFilter.LengthFilter(1), validCharsInputFilter });
0 голосов
/ 10 августа 2011

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

Это очень близко к этому вопросу: Проверка при редактировании текста

...