EditText inputType сперва числа, потом буквы

Рейтинг: 0Ответов: 1Опубликовано: 26.03.2023

Нужно сделать поля EditText с возможностью вводить номер дома и квартиры.

Номера бывают целочисленные, но встречаются варианты с буквами и дробями: 7А, 10/4 и тому подобное.

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

Подходящего варианта в списке предлагаемых я не нашел, может кто-то подскажет.

Ответы

▲ 0

В Андроид можно динамически менять inputType у виджета EditText. Предположим, у вас есть EditText с inputType = "number" и две кнопки:

<EditTextinputType
    ...
    android:id="@+id/editText"
    android:hint="Номер дома"
    android:inputType="number" />

<Button
    ...
    android:id="@+id/button1"
    android:text="Установить текстовый ввод" />

<Button
    ...
    android:id="@+id/button2"
    android:text="Установить числовой ввод" />

По нажатию на первую кнопку будем менять inputType на TYPE_CLASS_TEXT:

button1.setOnClickListener {
    editText.inputType = TYPE_CLASS_TEXT
}

А при нажатии на вторую кнопку будем менять inputType обратно на TYPE_CLASS_NUMBER:

button2.setOnClickListener {
    editText.inputType = TYPE_CLASS_NUMBER
}