AndroidでListViewやSpinnerを利用するには標準でSimpleAdapterやArrayAdapter(他にもCursorAdapter等)が用意されています。そしてこれらAdapterはBaseAdapterというものを継承して作成されています。
とりあえずはSimpleAdapterとArrayAdapterについて簡単に解説します。
まずSimpleAdapterとArrayAdapterについて違う部分を先に説明すると、前者は渡すデータがMap<String, ?>で後者がStringやCharSequenceになります。また前者は渡した後のデータをAdapter内で変更することが出来ませんが、後者は足したり引いたりソートしたり出来ます。
まずはSimpleAdapterについて
SimpleAdapterのコンストラクターでは
- 内包するMapデータ
- ListViewで表示するレイアウトxml
- Mapデータのキーと対応するレイアウトのID
表示できる内容はTextView、CheckedTextView、ImageView、CheckBox?
ImageViewに表示できる内容はリソースIDを渡せる画像のみです。
そんな私が作ったSimpleAdapterのサンプルコードです。
レイアウトXML(simpleadapter_layout1.xml)
次にArrayAdapterの簡単な使い方です。
ArrayAdapterでは基本的に1つのTextView(CheckedTextView)だけを表示することが出来ます。
コンストラクターは
- 内包するテキストデータ
- ListViewで表示するレイアウトxml
- レイアウトxml上のTextViewのID
レイアウトxml(arrayadapter_layout1.xml)
おまけ
SimpleAdapterで内容を動的に変えてみる場合。
Adapterと同期するData(SimpleAdapterの場合はList<Map>)を別に管理することで、中身の追加・削除が容易に行えます。
(レイアウトxmlは上のSimpleAdapter例と同じ)
ListViewは覚えてしまえば非常に簡単で使いやすいと思います。
次回は適度にSpinnerについて。