リストの項目にテキストを表示する ListView (リストビュー) のシンプルな使い方を紹介します。
(ListView の表示と、項目の選択イベントについて)
ListView (リストビュー) を表示し、項目選択イベント処理を行うには、
- リソースファイル (xml) に ListView (リストビュー) を定義する
- ソースファイルで、ListView に表示する項目を設定する
- ListView (リストビュー) に項目選択イベントを登録する
■ リソースファイル
layout/main.xml<?xml version="1.0" encoding="utf-8"?> <ListView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/listView1" android:layout_width="match_parent" android:layout_height="wrap_content" />
■ ソースファイル
src/ListViewSample.javapackage jp.sample.listview; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.Toast; public class ListViewSampleActivity extends Activity { // リストに設定するアイテム private final String[] item = new String [] { "listView item 1", "listView item 2", "listView item 3" }; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // ListView に設定するデータ (Adapter) を生成する // (データを設定するには、Adapter (アダプタ) を使用する必要がある) ArrayAdapter<String> adapter = new ArrayAdapter<String>( this, android.R.layout.simple_list_item_1, item); // リストビューにデータ (adapter) を追加 ListView listView1 = (ListView)findViewById(R.id.listView1); listView1.setAdapter(adapter); // アイテムクリック時のイベントを追加 listView1.setOnItemClickListener(new AdapterView.OnItemClickListener() { public void onItemClick(AdapterView<?> parent, View view, int pos, long id) { // 選択アイテムを取得 String str = (String)parent.getItemAtPosition(pos); Toast.makeText(ListViewSampleActivity.this, str, Toast.LENGTH_SHORT).show(); } }); } }
■ 説明
1. リソースファイル (xml) に ListView (リストビュー) を定義する
ListView を使用するには、 ListView タグを定義します。テキストを表示するリストを使う場合、特別な属性の設定などはありません。高さと幅を指定するだけです。<ListView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/listView1" android:layout_width="match_parent" android:layout_height="wrap_content" />
2. ソースファイルで、ListView に表示する項目を設定する
ListView に表示する項目を設定するには、Adapter (アダプタ) クラスを使う必要があります。ここでは文字を表示するリストにするので、文字列を定義します。
// リストに設定するアイテム private final String[] item = new String [] { "listView item 1", "listView item 2", "listView item 3" };
アダプタを生成し、表示する文字を追加します。
文字列の表示なので、String 型とします。第二引数には、ListView の各アイテムに用いるレイアウトリソースを指定します。ここでは、Android 標準で用意されている simple_list_item_1 を使用します。これは、文字を表示するためのレイアウトです。
// ListView に設定するデータを生成する ArrayAdapter<String> adapter = new ArrayAdapter<String>( this, android.R.layout.simple_list_item_1, item);
そして、生成したアダプタを setAdapter メソッドで ListView に設定します。
// リストビューにデータ (adapter) を追加 ListView listView1 = (ListView)findViewById(R.id.listView1); listView1.setAdapter(adapter);
3. ListView (リストビュー) に項目選択イベントを設定する
項目が選択されたときのイベントを設定するには、setOnItemClickListener メソッドを使用します。// アイテムクリック時のイベントを追加 listView1.setOnItemClickListener(new AdapterView.OnItemClickListener() { public void onItemClick(AdapterView<?> parent, View view, int pos, long id) { // 選択アイテムを取得 String str = (String)parent.getItemAtPosition(pos); Toast.makeText(ListViewSampleActivity.this, str, Toast.LENGTH_SHORT).show(); } });
そして、 onItemClick メソッドに項目が選択された時の処理を実装します。
引数の parent は、設定した Adapter (アダプタ)で、pos は、選択した項目の位置です。
選択された項目の文字を取得するには、
getItemAtPosition(pos) とすることで、取得できます。
0 件のコメント:
コメントを投稿