リストビューを使ってデータを一覧表示する
リストビューを使うと、配列やデータベース上のデータなど、
複数のデータを一覧表示することができます。
アドレス帳やメモ帳など、さまざまな用途で使用することができます。
リストビューの使い方の詳しい説明は続きからご覧下さい。
リストビューを使用したレイアウト
まずリストビューを使用したレイアウトを定義しましょう。
リストビューのIDは「@android:id/list」にしておく必要があります。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<ListView
android:id="@android:id/list"
android:choiceMode="singleChoice"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</LinearLayout>
アクティビティ
実際のアクティビティのコードは以下のようになります。
public class ListViewSample extends ListActivity {
/** Called when the activity is first created. */
static final String[] COUNTRIES = new String[] { "Afghanistan", "Albania", "Algeria", "American Samoa" };
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, COUNTRIES));
// getListView().setTextFilterEnabled(false);
}
protected void onListItemClick(ListView l, View v, int position, long id) {
TextView t = (TextView)v;
super.onListItemClick(l, v, position, id);
Log.i("ListViewSampleSample", t.getText().toString() + position);
}
}
まずリストビューを使うには、リストビューを使うアクティビティに
リストアクティビティクラスを継承します。
public class ListViewSample extends ListActivity {
...
次にリストに表示するデータをアダプタクラスを使って設定します。
配列を扱う場合はArrayAdapterクラス、データベースを扱う場合はCursorクラスを使用します。
今回は配列を扱うのでArrayAdapterクラスを使用します。
そして、そのArrayAdapterクラスをsetListAdapterメソッドでアクティビティに設定します。
setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, COUNTRIES));
ArrayAdapterクラスの定義は以下のようになっており、
ArrayAdapter(Context context, int textViewResourceId, List<T> objects)
コンテキストとTextViewのリソースID、各行のデータを示す配列オブジェクトを指定します。
リスト項目を選択したときに処理をさせる
リスト項目を選択したときになにか処理をさせたいときは
onListItemClickメソッドを使います。
protected void onListItemClick(ListView l, View v, int position, long id) {
TextView t = (TextView)v;
super.onListItemClick(l, v, position, id);
Log.i("ListViewSampleSample", t.getText().toString() + position);
}
この例ではリスト項目が選択されたときに、リスト項目の内容と
先頭から何番目であるかを示したpositionをログに表示しています。
About The Author
kseto
4 Comments
