【Android】リストビュー(ListView)の使い方を紹介


概ねタイトルとおりの内容です。

リストビュー(ListView)の使い方を紹介してみます。
名前の通りリストを表示する為のViewですね。使用頻度は高めです(^ω^)
使うためにはArrayAdapterクラスを使用したりと他のViewとは若干違うところがあったりするので注意です。



リストに使用する配列とアダプタ(ArrayAdapter)を作成する


ListViewを使いためには3つの手順が必要です。
大まかにはこのような感じに。
①リストに表示する用の配列を用意
②配列とリストビューの形式を指定してアダプタを作成
③ListViewを作成、アダプタをListViewに設定

String[] str = {  "ルーミア","チルノ","紅美鈴","パチュリー","十六夜咲夜","おぜう" };
ArrayAdapter<String> ad = new ArrayAdapter<String>( this, android.R.layout.simple_list_item_1, str );
ListView lv = new ListView(this);
lv.setAdapter(ad);



上記の例だと、リストビューの形式はAndroidni標準で用意されている形式
android.R.layout.simple_list_item_1
を使用しています。

リストビューをクリックした時のリスナーを登録する


次にリストビューをの項目をクリックした時の処理を追加します。
いつも使っているOnClickListenerではなく、OnItemSelectedListenerというリスト用のリスナを使います。

class SampleListener implements OnItemClickListener{
  @Override
  public void onItemClick(AdapterView<?> v, View iv, int pos, long id) {
  	/*ここにクリックされた時の処理*/

  }
}



サンプルプログラム


※importは省略
public class Sample20120810Activity extends Activity {

	TextView tv;
	ListView lv;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        LinearLayout ll = new LinearLayout(this);
        ll.setOrientation( LinearLayout.VERTICAL );
        setContentView(ll);

        tv = new TextView(this);
        tv.setText("名前を選択して下さい。");

        lv = new ListView(this);
        String[] str = {  "ルーミア","チルノ","紅美鈴","パチュリー","十六夜咲夜","おぜう" };
        ArrayAdapter<String> ad = new ArrayAdapter<String>( this, android.R.layout.simple_list_item_1, str );
        lv.setAdapter(ad);

        ll.addView(tv);
        ll.addView(lv);

        lv.setOnItemClickListener( new SampleListener() );

    }

    class SampleListener implements OnItemClickListener{

		@Override
		public void onItemClick(AdapterView<?> v, View iv, int pos, long id) {
			TextView tmp = (TextView)iv;
			tv.setText( tmp.getText() + "が選択されました。" );

		}

    }
}


※31行目は?はプラグインの関係で全角になっていますが半角でお願いします。

【実行結果】
【Android】リストビュー(ListView)の使い方01 【Android】リストビュー(ListView)の使い方02



似たような使い方ができるスピナ(Spinner)というビューがあります。
そちらの紹介はまた次の機会に。


関連記事

コメントは受け付けていません。