2011/12/05

メモ的 DialogPreference

android.preference.DialogPreferenceを利用してちょっと遊んでみた。


WeatherNow 1.6だか2.0だかではAppWidget背景の透過率を従来の10%単位から1%単位での設定に変更します。設定画面でPreferenceクリックしたらダイアログ出して、ダイアログの中でシーク+ボタン+直接入力で透過率設定出来たら便利だよね?!ってことで作ってみた。

DialogPreferenceを継承する上で重要なDialogの表示部分ですが、Androidのソースコード(4.0.1)ではこんな感じになってます。


ダイアログの表示部分自体を変えたければこのshowDialogを、ダイアログで表示する中身を変えたければonPrepareDialogBuilderを、ダイアログが閉じられたときの挙動を変えたければonClickやonDialogClosedをオーバーライドすればいいっぽいです。


そんなわけで、作ってみた。最終的なViewのアウトプットはこんな感じ。