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