Android обнаруживает скобки и ввод специальных символов, перед API 11 - PullRequest
1 голос
/ 27 марта 2011

У меня есть экран, на котором я хочу, чтобы пользователь вводил только цифры в текстовом поле.Я уже заставляю цифровую клавиатуру открываться в Android, и я определяю числа на основе их значения ascii.

Я пытаюсь не использовать KeyCode.NUMBER_PAD_X для обнаружения нажатий клавиш на цифровой клавиатуре, потому что это толькоособенность API 11 и выше, и я стремлюсь к большей совместимости с аналогичными функциями.Аналогично, обнаружение специальных символов, таких как () + - / #,.является встроенной функцией API 11 и выше.

На некоторых телефонах Android ниже Android 3.0 / API 11 на цифровой клавиатуре / панели телефона также есть специальные символы, которые API просто не будет игнорировать.На G2 игнорируются только некоторые специальные символы, но это позволяет вводить () + - / # в поле EditText, мой ловец символов не замечает эти входные данные, даже если они находятся за пределами диапазона для этого условия, иЯ не могу использовать KeyCodes уровня API 11 для их явного обнаружения

Какие-либо решения о том, как их обнаружить?

Проблематично, что пользователь может вводить их и они появляются в текстовом поле, но ни один из моего кода не обнаруживает их и не регистрируется в отладчике.Это портит мои другие условия обработки ошибок, которые в настоящее время проверяют, чтобы увидеть, какова длина строки, пользователь может переполнить строки этими символами

1 Ответ

2 голосов
/ 27 марта 2011

Вы можете использовать android: цифры на вашем EditText, чтобы ограничить значения, которые примет представление. Например:

android:digits="0123456789"

Принимал бы только цифры. Клавиатура по-прежнему будет содержать другие клавиши, но на самом деле будут приниматься только те, которые вы разрешите.

...