リストビューの利用


アンドロイドのGUIの中で、もっとも重要な役割を担っているのが「リストビュー」でしょう。リストビューは、文字通り「さまざまな要素の一覧リスト」を表示するためのものです。これは非常に多くのところで用いられます。

リストビューは、<ListView>というタグとしてレイアウトに用意します。選択されている項目については、「setSelection」「getSelection」といったメソッドが利用できます。setSelectionで、引数にインデックス番号のint値を指定すれば、その項目を選択させることができますし、getSelectionを使えば選択されている項目のインデックス番号が得られます。

リストビューは、一般的なビューとは異なり、その内部にレイアウトを持ちます。表示する項目に関するレイアウトデータをあらかじめ用意しておき、それを用いて1つ1つの項目を作成して組み込んでいくのです。実際にやってみましょう。

※main.xml
<ListView
  android:id="@+id/list1"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
/>


※list.xml
<?xml version="1.0" encoding="utf-8"?>
<TextView
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:padding="3dip"
/>


ここでは、main.xmlに<ListView>を配置しています。そして、新たに「res」内の「layout」フォルダの中に「list.xml」というレイアウト用XMLファイルを作成します。これが、ListViewで使用するレイアウトです。といっても、ただ単に<TextView>が1つあるだけですね。このレイアウトが、ListViewの各項目の表示として用いられるわけです。

※MyAndyクラスのonCreateメソッド
public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);

  final TextView text1 = (TextView) findViewById(id.text1);
  final ListView list1 = (ListView) findViewById(id.list1);
  
  String[] arr = {"Wndows","Linux","Mac OS X"};
    ArrayAdapter adapter = new ArrayAdapter(this, R.layout.list, arr);
  list1.setAdapter(adapter);
  list1.setSelection(0);
}

リストビューの利用例。

項目の組み込みは、リストビューに項目情報を組み込むためのアダプタクラスを利用して行います。ここでは、String値の配列を項目として追加する「ArrayAdapter」というクラスを使っています。

new ArrayAdapterでインスタンスを作成し、これを「setAdapter」でListViewに設定します。newするとき、this、使用するレイアウト、String配列データをそれぞれ引数に渡すと、それをもとに項目を作成しリストビューに追加します。