Есть ли способ получить программную клавиатуру Android, которая имеет только цифры (без десятичных знаков, пробелов) с кодом Java?
У меня есть приложение для iPhone, которое использует различные раскладки клавиатуры. Некоторые из них на заказ, а некоторые встроены в:
Только числа:
Десятичные:
Пользовательская кнопка X для номеров ISBN:
Я хотел бы сделать то же самое на Android, но даже нормальный InputType.TYPE_CLASS_NUMBER
по-прежнему включает десятичные дроби, пробел, запятую и т. д.
Как я могу настроить клавиатуру в Android??
5 ответов
Это невозможно с помощью встроенной клавиатуры. Вам придется разработать пользовательскую программную клавиатуру или написать встроенное представление, которое работает как замена клавиатуры.
Я думаю, что на этот вопрос уже ответили на Stackru. Посмотри на это:
Показывать только цифровые кнопки на Soft Keyboard в Android?
@twaddington правильно, что то, что вы просите, не будет возможно со встроенной клавиатурой. Чтобы предотвратить ввод нецифровых символов, необходимо установить в XML следующее EditText
,
android:inputType="phone"
android:digits="1234567890"
Если вы хотите это в коде, а не в XML, я думаю, что это должно работать:
numericField.setInputType(Configuration.KEYBOARD_12KEY);
numericField.setKeyListener(new DigitsKeyListener());
Этот учебник может помочь в разработке вашей собственной цифровой программной клавиатуры.
Пожалуйста, используйте inputType = "number", тогда вы получите только цифровую клавиатуру.
<EditText android:inputType="number"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
Я надеюсь, что это поможет вам.:)
Кажется, Android добавил функциональность, которую мы искали. Это xml, который я использую для простого ввода чисел EditText:
android:inputType="numberPassword"
android:digits="0123456789"
android:singleLine="true"
android:ems="4"
android:textColor="@android:color/black"
android:gravity="center"
Есть выход. использование
numericField.setInputType(InputType.TYPE_NUMBER_VARIATION_NORMAL|InputType.TYPE_CLASS_NUMBER);
Он ожидает цифровую клавиатуру только на Holo и обратно совместимую цифровую клавиатуру на младших версиях.