ListViewに引き続き、Spinnerにデータを渡すAdapterの記事です。
ListView同様SpinnerでもSimpleAdapterとArrayAdapterが利用できます。
ただSpinnerで利用する際には
setDropDownViewResource
を呼ぶ必要があります。
Spinnerは画面に選択された値が出ている時と、それをクリックしてダイアログが飛び出てくる時(ドロップダウン時)と、2種類のViewを持っているためsetDropDownViewResourceを指定して飛び出してきた際のViewを指定しましょう。
まぁ別に、「画面にいるときも飛び出してきたときも同じViewで問題無い」って場合は呼ぶ必要無いんですが。。。
ただしArrayAdapterやSimpleAdapterを利用する場合、通常のViewとドロップダウン時のビューで指定するレイアウト上のID(≠レイアウトxmlのID)を同一にする必要がある様です。
今回はArrayAdapterの場合のみ。
レイアウトxmlはAndroidに標準で用意された物を利用します。
ListViewとの違いはドロップダウン時のViewを指定することと、選択時のリスナー名が違うことくらいです。
次はListViewの内容を更にカスタマイズ。
2011/07/04
ListViewやSpinnerを使ってみる1
今回はListViewやSpinnerに表示する項目にデータを渡すAdapterに関する記事です。
AndroidでListViewやSpinnerを利用するには標準でSimpleAdapterやArrayAdapter(他にもCursorAdapter等)が用意されています。そしてこれらAdapterはBaseAdapterというものを継承して作成されています。
とりあえずはSimpleAdapterとArrayAdapterについて簡単に解説します。
まずSimpleAdapterとArrayAdapterについて違う部分を先に説明すると、前者は渡すデータがMap<String, ?>で後者がStringやCharSequenceになります。また前者は渡した後のデータをAdapter内で変更することが出来ませんが、後者は足したり引いたりソートしたり出来ます。
まずはSimpleAdapterについて
SimpleAdapterのコンストラクターでは
表示できる内容はTextView、CheckedTextView、ImageView、CheckBox?
ImageViewに表示できる内容はリソースIDを渡せる画像のみです。
私自身はこの記事を書いている時点でアプリにSimpleAdapterを利用したことがありません。
そんな私が作ったSimpleAdapterのサンプルコードです。
レイアウトXML(simpleadapter_layout1.xml)
次にArrayAdapterの簡単な使い方です。
ArrayAdapterでは基本的に1つのTextView(CheckedTextView)だけを表示することが出来ます。
コンストラクターは
私自身はこの記事を書いている時点でアプリにArrayAdapterを利用したことがありません。
レイアウトxml(arrayadapter_layout1.xml)
おまけ
SimpleAdapterで内容を動的に変えてみる場合。
Adapterと同期するData(SimpleAdapterの場合はList<Map>)を別に管理することで、中身の追加・削除が容易に行えます。
(レイアウトxmlは上のSimpleAdapter例と同じ)
ListViewは覚えてしまえば非常に簡単で使いやすいと思います。
次回は適度にSpinnerについて。
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について。
登録:
投稿 (Atom)