EditTextのInputType(入力制限/値のバリエーション指定)を紹介します。EditTextは ClipboardManagerを使用してテキストのコピーと貼り付けを行う(Android3.0版) や AlertDialogで文字を入力する(2) – カスタムダイアログ などUIを構成するウィジェットとしてなくてはならないコンポーネントです。
今回は入力制限/値のバリエーションについて、わかりやすく一覧表(後述)にまとめました。入力値の設定方法、使い方、サンプルコードは以下の通りです。
- EditText#setInputType(int type)
EditText#setInputTypeメソッドを使い様々な入力規則、種類を表現することができます。引数int typeはandroid.text.InputTypeを使います。以下のサンプルのように複数の設定をOR演算で与えることが可能です(ビット演算可能)
パスワードの入力の場合: et.setInputType( InputType.TYPE_CLASS_TEXT |
InputType.TYPE_TEXT_VARIATION_PASSWORD);
import android.text.InputType; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); EditText et = (EditText)findViewById(R.id.editText1); //パスワード入力 et.setInputType( InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD); }
InputTypeまとめ
以下にInputTypeをClass、バリエーション、フラグでまとめました。続きからどうぞ
InputType Class
クラスの種類と特殊な値。CLASSは入力の種類、TYPE_NULLはリッチな入力環境を持たない端末向けに利用します。
クラス名 | 説明 |
---|---|
TYPE_CLASS_DATETIME | 日付と時刻 |
TYPE_CLASS_NUMBER | 数値 |
TYPE_CLASS_PHONE | 電話番号 |
TYPE_CLASS_TEXT | 文字列 |
TYPE_NULL | 端末側の入力メソッドが制限されている場合 |
InputType BitMask
クラスとフラグ、バリエーションの判断のためのビットマスク
マスク名 | 説明 |
---|---|
TYPE_MASK_CLASS | クラスを取得するためのマスク値 |
TYPE_MASK_FLAGS | フラグを取得するためのマスク値 |
TYPE_MASK_VARIATION | 入力制限を取得するためのマスク値 |
InputType Date Variation
日付と時刻のバリエーション
日付と時刻のバリエーション | 説明 |
---|---|
TYPE_DATETIME_VARIATION_DATE | 標準設定:日付入力 |
TYPE_DATETIME_VARIATION_NORMAL | 標準設定:日付と時刻の入力 |
TYPE_DATETIME_VARIATION_TIME | 標準設定:時刻 |
InputType Number Flag/Variation
数値入力フラグとバリエーション。HONEYCOMBよりバリエーションが追加され、パスワード入力に対応しました
フラグ、バリエーション | 説明 |
---|---|
TYPE_NUMBER_FLAG_DECIMAL | 10進数の入力 |
TYPE_NUMBER_FLAG_SIGNED | 符号付き数値の入力 |
TYPE_NUMBER_VARIATION_NORMAL | 標準設定:通常の数値入力。HONEYCOMBより追加 |
TYPE_NUMBER_VARIATION_PASSWORD | 標準設定:パスワード入力。 HONEYCOMBより追加 |
InputType Text Flag
文字列入力のフラグ。大文字、小文字の制御など英語圏向けの機能が多いですが、オートコンプリート機能、入力候補非表示など細かな変更ができます。
フラグ名 | 説明 |
---|---|
TYPE_TEXT_FLAG_AUTO_COMPLETE | オートコンプリート機能 |
TYPE_TEXT_FLAG_AUTO_CORRECT | 文字列の自動修正機能 |
TYPE_TEXT_FLAG_CAP_CHARACTERS | 大文字で入力 |
TYPE_TEXT_FLAG_CAP_SENTENCES | 文章の先頭を大文字で入力 |
TYPE_TEXT_FLAG_CAP_WORDS | 単語の先頭を大文字で入力 |
TYPE_TEXT_FLAG_IME_MULTI_LINE | 複数行入力。フルスクリーンでのIME入力が可能な場合に推奨 |
TYPE_TEXT_FLAG_MULTI_LINE | 複数行入力 |
TYPE_TEXT_FLAG_NO_SUGGESTIONS | 入力候補の非表示 |
InputType Text Variation
文字列入力のバリエーション。HONEYCOMBよりWebフォームのEmailアドレス/パスワード入力が追加されました。
バリエーション名 | 説明 |
---|---|
TYPE_TEXT_VARIATION_EMAIL_ADDRESS | Emailアドレス |
TYPE_TEXT_VARIATION_EMAIL_SUBJECT | Emailのサブジェクト(題名) |
TYPE_TEXT_VARIATION_FILTER | リストなどのコンテンツでフィルタされた文字列 |
TYPE_TEXT_VARIATION_LONG_MESSAGE | Emailの本文など長い文章入力 |
TYPE_TEXT_VARIATION_NORMAL | 標準設定:プレーンテキストの入力 |
TYPE_TEXT_VARIATION_PASSWORD | パスワード入力 |
TYPE_TEXT_VARIATION_PERSON_NAME | 人名の入力 |
TYPE_TEXT_VARIATION_PHONETIC | コンタクトリストの" phonetic name field"など音声認識用 |
TYPE_TEXT_VARIATION_POSTAL_ADDRESS | 住所入力 |
TYPE_TEXT_VARIATION_SHORT_MESSAGE | インスタントメッセージ、ショートメッセージの入力 |
TYPE_TEXT_VARIATION_URI | URI入力 |
TYPE_TEXT_VARIATION_VISIBLE_PASSWORD | 可視状態でのパスワード入力 |
TYPE_TEXT_VARIATION_WEB_EDIT_TEXT | Webフォームのテキスト入力 |
TYPE_TEXT_VARIATION_WEB_EMAIL_ADDRESS | WebフォームのEmailアドレス入力。HONEYCOMBより追加 |
TYPE_TEXT_VARIATION_WEB_PASSWORD | Webフォーム内のパスワード入力。HONEYCOMBより追加 |
以上で全てです。TYPE_NUMBER_VARIATION_PASSWORDやTYPE_TEXT_VARIATION_WEB_EMAIL_ADDRESSなどHONEYCOMBから追加されたタイプもあり、都度追加されています。
android.text.InputType
http://developer.android.com/reference/android/text/InputType.html