Поскольку номер места (ваш пример) будет иметь различное количество номеров, довольно сложно угадать, когда переключаться с одного типа клавиатуры на другой.
В противном случае вы можете программно изменить тип ввода EditText следующим образом:
((EditText) mView.findViewById(R.id.et_seat_number)).addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence charSequence, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable editable) {
EditText etSeatNumber = (EditText) mView.findViewById(R.id.et_seat_number);
if(editable.length() > 2)
etSeatNumber.setInputType(InputType.TYPE_CLASS_NUMBER);
else{
etSeatNumber.setInputType(InputType.TYPE_CLASS_TEXT);
}
}
});
Также вы можете использовать параметры IME на программной клавиатуре для изменения типа ввода с клавиатуры.https://stackoverflow.com/a/40526750/6672482