リストビューの利用
アンドロイドの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"};
ArrayAdapteradapter = new ArrayAdapter (this, R.layout.list, arr);
list1.setAdapter(adapter);
list1.setSelection(0);
}
リストビューの利用例。 |
項目の組み込みは、リストビューに項目情報を組み込むためのアダプタクラスを利用して行います。ここでは、String値の配列を項目として追加する「ArrayAdapter」というクラスを使っています。
new ArrayAdapterでインスタンスを作成し、これを「setAdapter」でListViewに設定します。newするとき、this、使用するレイアウト、String配列データをそれぞれ引数に渡すと、それをもとに項目を作成しリストビューに追加します。