リストビューを使ってデータを一覧表示する


リストビューを使うと、配列やデータベース上のデータなど、
複数のデータを一覧表示することができます。
アドレス帳やメモ帳など、さまざまな用途で使用することができます。

リストビューの使い方の詳しい説明は続きからご覧下さい。

リストビューを使用したレイアウト

まずリストビューを使用したレイアウトを定義しましょう。
リストビューのIDは「@android:id/list」にしておく必要があります。

1
2
3
4
5
6
7
8
9
10
11
12
<?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>

アクティビティ

実際のアクティビティのコードは以下のようになります。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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);
    }
}

まずリストビューを使うには、リストビューを使うアクティビティに
リストアクティビティクラスを継承します。

1
2
public class ListViewSample extends ListActivity {
...

次にリストに表示するデータをアダプタクラスを使って設定します。
配列を扱う場合はArrayAdapterクラス、データベースを扱う場合はCursorクラスを使用します。
今回は配列を扱うのでArrayAdapterクラスを使用します。
そして、そのArrayAdapterクラスをsetListAdapterメソッドでアクティビティに設定します。

1
setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, COUNTRIES));

ArrayAdapterクラスの定義は以下のようになっており、

1
ArrayAdapter(Context context, int textViewResourceId, List<T> objects)

コンテキストとTextViewのリソースID、各行のデータを示す配列オブジェクトを指定します。

リスト項目を選択したときに処理をさせる

リスト項目を選択したときになにか処理をさせたいときは
onListItemClickメソッドを使います。

1
2
3
4
5
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をログに表示しています。

4 Comments