リストの項目にテキストを表示する 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 件のコメント:
コメントを投稿