#Androidアプリ開発で、よく使うEditTextの属性について(inputTypeとdigitsの内容多め)
###Androidアプリを作成しているときにEditTextオブジェクトを使うことはよくありますが、筆者がよく使う属性を書き出してみました。
1.「android:hint」属性 → テキストフィールドに、まだテキストを入力していないときに表示されるテキストを設定する。
2.「android:maxLength」属性 → テキストフィールドに入力できる、テキストの字数における最大値を設定する。
(例えば、値を5に設定していると、5字までしかテキストを入力できない)
3.「android:maxLines」属性 → テキストフィールドに表示できる。テキストの行数における最大値を設定する。
(例えば、値を2に設定していると、2行までしか表示できない)
4.「android:inputType」属性 → テキストフィールドに入力できるデータの種類を制限できる。
筆者がよく使う値として、「textPersonName」と「number」があります。
「textPersonName」は、人名として使用されるテキストデータ、「number」は、数値のみを扱うテキストデータです。
5.「android:digits」属性 → 設定している文字や数値しかテキストフィールドに入力できないように制限できる。
(例えば、値を012345678と設定していると、他のテキストは入力できません。同じ数値でも9は入力できません)
###以上の属性がよく筆者が使用するEditTextオブジェクトの属性ですが、4の「android:inputType」と5の「android:digits」属性って似ていますよね。
###この二つの属性の上手な使い方について、検証しました。
###まず、「android:inputType」属性ですが、テキストフィールドに表示できるデータの種類を制限できると記載しましたが、同時にIMEに入力制限をかけることもできます。
IMEは入力方法編集プログラムと訳されますが、具体的に言うと、設定した値によってテキストフィールドをクリックしたときに表示される端末のキーボードが変わります。
一つ目の画像は「android:inputType」の値を「textPersonName」に設定して、テキストフィールド(「色:」の横)をクリックしました。
キーボードにはひらがなが表示されています。(左の下から2番目をクリックすれば、数値等も入力できます)
二つ目の画像は「android:inputType」の値を「number」に設定して、テキストフィールド(「枠幅:」の横)をクリックしました。
キーボードには数値が表示されています。(日本語やアルファベットの入力はできません)
numberを指定しているときにひらがな表示のキーボードが出現すると、切り替えるのにクリックする手間が発生するので、このIMEの入力制限をかけてくれる機能は便利ですね。
###次に「android:digits」属性ですが、値に設定している文字や数値しかテキストフィールドに入力できないように制限できると記載しましたが、これは「android:inputType」属性の入力制限よりも厳格に制限できるというメリットがあります。また、反対に制限を寛容にすることもできます。
例えば、「android:inputType」属性で「number」を設定している場合に「android:digits」属性の設定をしないと、二つ目の画像のキーボードでいうと、「0123456789」の入力ができます。
また、「android:inputType」属性で「number」を設定している場合に「android:digits」属性の値を「012345678」と設定すると、「012345678」の入力ができます。(9は入力できません)
さらに、「android:inputType」属性で「number」を設定している場合に「android:digits」属性の値を「0123456789-」と設定すると、二つ目の画像のキーボードでいうとキーボードの右上にある「-」も入力できるようになります。つまり、「0123456789-」の入力ができます。(正の値だけでなく、負の値も入力できるようになりました)
###まとめると、最初に「android:inputType」属性で大雑把に入力制限をかけて、次に「android:digits」属性で入力制限を調整するという使い方が、正しいと思いました。
###今回、検証で使用したアプリですが、Google Play Storeで(無料、広告無し)で公開しているので、よろしければダウンロードしてみてください。
Androidアプリ作成時に使用する単色の背景画像を生成できるアプリです。
このアプリを作成した経緯(記事)を前に投稿しているので、よろしければそちらもご覧ください。
https://qiita.com/konno-siki/items/33510f645ca1c260bfa4