2012年5月31日木曜日

テキスト入力用の View を表示する (EditText)

Android アプリで、テキストを入力するための View を表示するには、エディットテキスト (EditText) クラスを使用します。
ここでは、エディットテキスト (EditText) を表示し、ボタンクリック時に入力された文字を取得するサンプルを紹介します。



エディットテキスト (EditText) を表示し、ボタンクリック時に入力された文字を取得する手順は以下のようになります。
  1. レイアウトリソースファイルにエディットテキスト (EditText) を定義する
  2. ボタンにクリックリスナを設定し、入力された文字を取得する


■ リソースファイル


layout/main.xml
<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <EditText
        android:id="@+id/etxtName"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="@string/hint" />

    <Button
        android:id="@+id/btnOk"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/txtOk" />

</LinearLayout>

value/string.xml
<resources>
    <string name="hint">名前を入力してください</string>
    <string name="txtOk">OK</string>
</resources>


■ ソース (java ファイル)


EditTextSample.java
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class EditTextActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        // クリックリスナを設定
        Button btnOk = (Button)findViewById(R.id.btnOk);
        btnOk.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                // EditText に入力された文字を取得
                EditText etxtName = (EditText)findViewById(R.id.etxtName);
                String name = etxtName.getText().toString();

                // 通知ダイアログの表示
                Toast.makeText(EditTextActivity.this,
                               name, Toast.LENGTH_SHORT).show();
            }
        );
    }
}


1. レイアウトリソースファイルにエディットテキスト (EditText) を定義する

エディットテキストを表示するには、EditText タグを定義します。
<EditText
    android:id="@+id/etxtName"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="@string/hint" />
hint 属性には、文字が未入力のときに表示するテキストを設定します。


2. ボタンにクリックリスナを設定する

ボタンクリック処理を記述するために、クリックリスナを設定します。
// クリックリスナを設定
Button btnOk = (Button)findViewById(R.id.btnOk);
btnOk.setOnClickListener(new OnClickListener() {
    public void onClick(View v) {
        // EditText に入力された文字を取得
        EditText etxtName = (EditText)findViewById(R.id.etxtName);
        String name = etxtName.getText().toString();

        // 通知ダイアログの表示
        Toast.makeText(EditTextActivity.this,
                       name, Toast.LENGTH_SHORT).show();
    }
);
EditText に入力された文字を取得するには、
getText メソッドを使用します。この戻り値は Editable クラスのオブジェクトなので、文字列として取得するには、toString メソッドを使用して String 型に変換します。


0 件のコメント:

コメントを投稿