ヒント表示
EditTextに関しては、何も入力をされてない場合に入力を促す文字(hint)を入力できます。ヒントに関しては文字入力を行うと消えます。
ヒントの実装に関しては、xmlでの設定かスクリプトでの制御となります。
xmlの場合は下記のように
<EditText android:layout_width="fill_parent" android:text="" android:hint="ヒントだよ" android:id="@+id/editText1" android:layout_height="wrap_content"></EditText>
hintに入力できます。hintを入れる際にはtextの中に文字が入っている場合に、hintが表示されませんのでデフォルトではhintのみ表示させたい場合はtextの中身を空にしておきましょう。
また、スクリプトで制御を行う場合はsetHintを用いて下記のように設定ができます。
CharSequence _char = "hintだよ"; _editText.setHint(_char);
文字数制限
次に入力できる文字数の制限をしてみましょう。
xmlでは簡単に制御ができます。
main.xmlに以下の要素を足すだけです。
android:maxLength="3"
こちらで3文字しか入力ができなくなります。
一方で、スクリプトで制御を行う為にはsetFilterという関数を用いて若干複雑な作業が発生しますが、下記のように記述をします。
InputFilter[] _inputFilter = new InputFilter[1]; _inputFilter[0] = new InputFilter.LengthFilter(2); _editText.setFilters(_inputFilter);
これで、2文字までの制限ができるます。
文字制限
次に、数字のみしかいれたくない場所や、英語しかいれたくない場所などに対してはそれ以外の値をいれないようにする文字制限を行ってみます。
方法としてはスクリプトで制御か、xmlでの制御になります。
xmlで制御をする場合はinputTypeを足します。
<EditText android:layout_width="fill_parent" android:inputType="none" android:text="EditText" android:id="@+id/editText1" android:layout_height="wrap_content"></EditText>
また、スクリプトではeditTextのインスタンスに対して
_editText.setInputType(InputType.TYPE_CLASS_DATETIME);
と言う形で制限を加える事ができます。
入力できる数値は以下です。
none //入力できない
text [TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_NORMAL] //通常のテキスト
textCapCharacters[TYPE_TEXT_FLAG_CAP_CHARACTERS] //全て大文字
textCapWords[TYPE_TEXT_FLAG_CAP_WORDS] //単語の先頭を大文字に
textCapSentences[TYPE_TEXT_FLAG_CAP_SENTENCES] //文章の最初を大文字に
textAutoCorrect[TYPE_TEXT_FLAG_AUTO_CORRECT] //スペルミスの自動修正
textAutoComplete[TYPE_TEXT_FLAG_AUTO_COMPLETE] //オートコンプリート機能の追加
textMultiLine[TYPE_TEXT_FLAG_MULTI_LINE] //テキストの複数行入力
textImeMultiLine[TYPE_TEXT_FLAG_IME_MULTI_LINE] //IMEによって可能であれば複数行
textNoSuggestions[TYPE_TEXT_FLAG_NO_SUGGESTIONS] //IMEによって実行される辞書機能に関して、起動しないようにする。
textUri[TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_URI] //URI用
textEmailAddress[TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_EMAIL_ADDRESS] //E-mailアドレス
textEmailSubject[TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_EMAIL_SUBJECT] //メールの件名用
textShortMessage[TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_SHORT_MESSAGE] //ショートメッセージ用
textLongMessage[TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_LONG_MESSAGE] //ロングメッセージ用
textPersonName[TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_PERSON_NAME] //人名用
textPostalAddress[TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_POSTAL_ADDRESS] //住所用
textPassword[TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_PASSWORD] //パスワード用(不可視)
textVisiblePassword[TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_VISIBLE_PASSWORD] //パスワード用(可視)
textWebEditText[TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_WEB_EDIT_TEXT] //HTML入力用
textFilter[TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_FILTER] //その他のデータでフィルターされている。
textPhonetic[TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_PHONETIC] //発音記号
number[TYPE_CLASS_NUMBER] //数値
numberSigned[TYPE_CLASS_NUMBER | TYPE_NUMBER_FLAG_SIGNED] //符号付数値
numberDecimal[TYPE_CLASS_NUMBER | TYPE_NUMBER_FLAG_DECIMAL] //数値(分数など)
phone[TYPE_CLASS_PHONE] //電話番号
datetime[TYPE_CLASS_DATETIME | TYPE_DATETIME_VARIATION_NORMAL] //日付時間
date[TYPE_CLASS_DATETIME | TYPE_DATETIME_VARIATION_DATE] //日付
time[TYPE_CLASS_DATETIME | TYPE_DATETIME_VARIATION_TIME] //時間