Я просто хочу перейти в режим цифрової колодки, як тільки певний EditText зосередиться.
Я просто хочу перейти в режим цифрової колодки, як тільки певний EditText зосередиться.
Відповіді:
Я вважаю цю реалізацію корисною, показує кращу клавіатуру та обмежує вхідні символи.
<EditText
android:inputType="phone"
android:digits="1234567890"
...
/>
Крім того, ви можете використовувати android:maxLength
для обмеження максимальної кількості цифр.
Щоб зробити це програмно:
editText.setInputType(InputType.TYPE_CLASS_PHONE);
KeyListener keyListener = DigitsKeyListener.getInstance("1234567890");
editText.setKeyListener(keyListener);
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
...
android:inputType="number|phone"/>
покаже велику цифрову клавіатуру як дозвону.
Зробити це можна двома способами
Набір часу виконання
EditText input = new EditText(this);
input.setInputType(InputType.TYPE_CLASS_NUMBER);
Використання XML
<EditText
...
android:inputType="number" />
Якщо ви використовуєте EditText у діалоговому вікні або створюєте динамічно, і ви не можете встановити його з xml, тоді цей приклад допоможе вам у налаштуванні цього типу клавіатури під час використання динамічного редагування тексту тощо.
myEditTxt.setInputType(InputType.TYPE_CLASS_NUMBER);
де myEditTxt - це динамічний об’єкт EDIT TEXT (ім'я)
editText.setRawInputType(InputType.TYPE_CLASS_NUMBER);
Більше типів та деталей введення можна знайти тут на веб-сайті google
Нижче в коді будуть доступні лише номери "0123456789", навіть якщо ви випадково введете, крім "0123456789", редагування тексту не приймається.
EditText number1 = (EditText) layout.findViewById(R.id.edittext);
number1.setInputType(InputType.TYPE_CLASS_NUMBER|InputType.TYPE_CLASS_PHONE);
number1.setKeyListener(DigitsKeyListener.getInstance("0123456789”));
EditText number1 = (EditText) layout.findViewById(R.id.edittext);
number1.setInputType(InputType.TYPE_CLASS_NUMBER);