2011/12/06

PreferenceActivityのHeader画面でカテゴリーも表示する

API11(Android3.0)から実装されたPreferenceActivity$Header
HeaderとPreferenceFragmentを利用した設定画面の作成方法はこちらの記事で紹介した感じで簡単に作れます。

ところで。。。このHeader画面にカテゴリー表示ってどうやんの?っていう疑問。Android標準の設定画面はカテゴリー作ってんじゃんブーブー、的な。
Androidのソースコードを読んだ感じでは、標準で用意されているHeader用のListAdapterを上書きする必要があるようです。Android2.xとのCompatも含めて、以下、その方法。
ほとんどAndroidのソースコードコピペっただけですが・ω・


Header部分を構成するPreferenceなXML。
Android3.0~のXMLではカテゴリーで表示したいheaderタグにfragmentまたはintentを属性設定しないこと。

次にAndroid2.x用ヘッダー画面。
PreferenceFragmentとの共用クラス作った時とここまでは同じ。

ここからAPI11以上用のファイル達
Androidの内部リソースにアクセス出来ないため、ヘッダーで利用されているレイアウトXMLを自前で用意する必要があります。

PreferenceHeaderを表示するActivity