リストビューを使ってデータを一覧表示する
リストビューを使うと、配列やデータベース上のデータなど、
複数のデータを一覧表示することができます。
アドレス帳やメモ帳など、さまざまな用途で使用することができます。
リストビューの使い方の詳しい説明は続きからご覧下さい。
リストビューを使用したレイアウト
まずリストビューを使用したレイアウトを定義しましょう。
リストビューの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