2014年6月5日木曜日

AndroidのEditTextを使う

目次へ



Androidで文字を入力してもらうには、EditTextを使います。
  • EditTextのプロパティ(hint、inputType)
  • 入力された文字列の取り出し


■■■■いろいろなプロパティ■■■■

EditTextでは、入力文字列をチェックして、たとえば、数字しか入力できないようなEditTextを作ることができます。
そんな時に使うのがinputTypeというものです。

また、EditTextに何も入力されていない時に、表示しておく文字列をヒントといいます。
ヒントとして使う文字列はres/values/strings.xmlに登録しておきます。



文字列をリソースとして登録
<string name="prompt">ここに〇〇を入力</string>


リソースのレイアウトres/layout/activity_main.xmlでinputType、hintを設定する。
<EditText
     android:id="@+id/edit1"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:inputType="textMultiLine"
     android:hint="@string/prompt"  />


android:inputTypeについて

android:inputTypeを指定するとたとえば、数字しか入力できないなどを指定することができます。
リソースで登録しておく場合とプログラムで指定する場合があると思いますが、 プログラムで指定するには、setInputTypeメソッドを使います。
EditText edit = (EditText)findViewById(R.id.edit1);
edit.setInputType
    (InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_NORMAL);


よく使いそうな、入力チェックについて、リソースで指定する場合の値とプログラムで指定する場合の引数を次にまとめてみました。
入力値 android:inputTypeで指定するもの EditText#setInputTypeメソッドの引数
改行なしテキスト text InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_NORMAL
改行含むテキスト textMultiLine InputType. TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_MULTI_LINE
パスワード入力 textPassword InputType. TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD
符号なし整数 number InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_VARIATION_NORMAL
符号付き整数 numberSigned InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_SIGNED
小数点含めた数字 numberDecimal InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL


android:hintについて

android:hintでの指定をプログラムで行うにはsetHintメソッドを使います。
EditText edit = (EditText)findViewById(R.id.edit1);
edit.setHint(R.string.prompt);



■■■■入力された値を取り出す■■■■

プログラムで入力されたテキストを取得するには、次のように、getText().toString()で取得します。

EditText edit = (EditText)findViewById(R.id.edit1);
String str = edit.getText().toString();



にほんブログ村 IT技術ブログ IT技術メモへ
にほんブログ村