リストビュー

Android Tips

リストビューを実現するには、ListViewクラスとArrayAdapterクラスを使用します。
最もシンプルな文字だけのリストの場合、以下のようになります。
ArrayAdapterが若干ややこしいですが、柔軟なカスタマイズを可能とするため、このような仕様になっています。

public class MyClass extends Activity{

  public void myMethod(){
    ArrayAdapter adapter
      = new ArrayAdapter(this,android.R.layout.simple_list_item_1);
    adapter.add("Item1");
    adapter.add("Item2");
    adapter.add("Item3");
    // String[] items = {"Item1","Item2","Item3"};
    // ArrayAdapter adapter
    //   = new ArrayAdapter(this,android.R.layout.simple_list_item_1,items);

    ListView list = (ListView)findViewById(R.id.mylist);
    list.setAdapter(adapter);

    // アイテムがクリックされた
    list.setOnItemClickListener(new AdapterView.OnItemClickListener(){
      public void onItemClick(AdapterView parent,View view,int position,long id){
        ListView lv = (ListView)parent;
        String item = (String)lv.getItemAtPosition(position);
      }
    });
  
    // アイテムが選択された
    list.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener(){
      public void onItemSelected(AdapterView parent,View view,int position,long id){
        ListView lv = (ListView)parent;
        String item = (String)lv.getSelectedItem();
      }
      public void onNothingSelected(AdapterView parent){
      }
    });
  }
}

res/mylist.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:orientation="vertical"
>
<ListView android:id="@+id/mylist"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
/>
</LinearLayout>

コメント