Androidでフォームに入力する時、数字キーボードやメール用のキーボードを制御する方法をメモします。
EditTextに表示されるキーボードの種類はandroid:inputType で制御します。
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="text" />
テキスト入力(通常)
android:inputType="text"
数字のみ
android:inputType="number"
電話番号用
android:inputType="phone"
+ や - が入力できる
メールアドレス用
android:inputType="textEmailAddress"
@ や . が入力できる
パスワード
android:inputType="textPassword"
小数点付きの数字
android:inputType="numberDecimal"
Kotlinから inputType を設定することもできます。画面の状態によってinputを切り替えられます。
数字入力に切り替える
binding.editText.inputType = InputType.TYPE_CLASS_NUMBER
キーボードの見た目はIMEに依存するのとすべての端末で完全に同じ挙動にならないことには注意しましょう。