SSブログ

AdapterでListViewにデータをバインドしてみる [Android]

便利なバインディング機能

Androidアプリを開発する上で、利用頻度がかなり高いと思われるListViewですが。アダプタによるバインディングで、効率的にリストを作成することができます。

メイン画面のレイアウト

res/layout/main.xml

まずはレイアウトを定義していきましょう。メイン画面のグループレイアウトにListViewを追加します。idはlistViewとしておきましょう。

アイテムのレイアウト

res/layout/items.xml

続いて、ListViewに追加するアイテムのレイアウトを定義してきます。新規のレイアウトを作成し、TextViewを二つ用意しました。それぞれにnamewazaというidを定義しておきました。

アダプタの準備

DragonBallAdapter.java

新規でSimpleAdapterを継承したDragonBallAdapterクラスを作成します。早速、コンストラクタで初期データをバインドしています。では、SimpleAdapterのコンストラクタに渡すパラメータを見ていきましょう。

第二引数は、実際にバインドするデータです。List<? extends Map<String, ?>>で指定しますが、やや処理が込み入っているため、メソッドで外出しにしています。戻り値のListが、メイン画面のListView。中身のMapがアイテムのTextViewに紐付いているイメージです。

第三引数は、バインド対象のレイアウトを指定します。先ほど作成したアイテムのレイアウトのid、R.layout.itemsを指定します。

第四引数は、第二引数でバインドしたMapのキーを指定します。そして第五引数でアイテムのTextViewのidと紐付けていきます。

アダプタを呼出してデータをバインド

MainFragment.java

トップ画面のフラグメントを作成します。ListViewを取得し、setAdapterメソッドでアダプタを渡してデータをバインドします。あとは以前、紹介した方法でアクティビティと紐付けおきます。

アプリを起動

list_view_sample.png

エミュレータを起動すると、アダプタで初期登録したデータがリストビューで表示されています。

Google Androidプログラミング入門 改訂2版

Google Androidプログラミング入門 改訂2版

  • 作者: 江川崇
  • 出版社/メーカー: アスキー・メディアワークス
  • 発売日: 2012/08/30
  • メディア: 大型本

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。