はじめに
今回は、名前や電話番号などを入力する項目に文字列(または数値)のみを入力できるように設定したい場合の方法と、入力できる文字数(または桁数)を指定する方法について調べたことをまとめました。
事前説明
まず先に文字列の入力と文字数の指定について説明した後に、数値の入力と桁数の指定について説明します。
(今回はIDEにAndroidStudio、文字や数字を入力する際にEditTextを使用しています。)
設定方法
文字列のみ入力・文字数指定
xmlファイルにEditTextを配置した後、デザインタブからテキストタブに切り替えると以下のように表示されます。(以下、サンプル1)
<EditText //例1
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:id="@+id/editTextAddItemName"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintStart_toStartOf="parent"
android:layout_marginTop="158dp" app:layout_constraintEnd_toEndOf="parent" android:textAlignment="center"/>
上記のコードに以下を追加します。
android:inputType="text" //入力値を文字列に指定
android:maxLength="10" //入力できる文字数
以上で完了です。
android:inputType="text"を指定しているので、EditTextに何かを入力する時は文字入力のキーボードが表示されます。また、1, 2, 3...と数字を入力しても数値ではなく文字列として認識されます。
数値のみ入力・桁数指定
同様にxmlファイルにEditTextを配置した後、デザインタブからテキストタブに切り替えると以下のように表示されます。(以下、サンプル2)
<EditText //例2
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:id="@+id/editTextAddItemName"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintStart_toStartOf="parent"
android:layout_marginTop="158dp" app:layout_constraintEnd_toEndOf="parent" android:textAlignment="center"/>
上記のコードに以下を追加します。
android:inputType="number" //入力値を数値に指定
android:digits="0123456789" //入力できる数字
android:maxLength="5" //入力できるケタ数
以上で完了です。
android:inputType="number"を指定しているので、EditTextに何かを入力する時は数字入力のキーボードが表示されます。textを指定した時とは違い1, 2, 3...と入力すると文字列ではなく数値として認識されます。
また、android:digits="0123456789"とすることで、入力可能な数字や記号を指定できます。"123"と指定すると1, 2, 3以外は入力できなくなり、"0123456789-."と指定すると-(マイナス)や.(小数点)も入力できるようになります。
おわりに
今回はinputTypeに文字や数字(textやnumber)を指定する方法について触れましたが、他にも色々な指定の方法があるので気になる方は @joji さんの以下のページを参照してみてください。
https://qiita.com/joji/items/41cc6cbedb7b84b632df
それでは、ここまで読んでいただきありがとうございました。