Androidライブラリ inmite/android-styled-dialogs を使って、リストを表示するDialog Fragmentを作ってみました。
特徴は、以下の通りです。
- Android 3.1以前にも対応する、DialogFragmentベースのリスト表示するダイアログを実装した。
- リストの項目を選択すると、どの項目が選択されたか検知できる。
- ダイアログを表示中に画面回転をやった後、リストの項目やCancelをタップしても、アプリが落ちることはない。
ライブラリのソースファイルに添付のデモには、リストを表示するダイアログの例があるのですが、getTargetFragment()の返り値がnullになっていて、ダイアログのリストの項目をタップした時、どの項目がタップされたか拾えませんでした。本アプリではダイアログを開く画面を、Fragmentにして、そこで、setTagetFragmentでセットすることによって、この問題を解決しました。また、デモでは、Fragmentの実装にはよく見られるシングルトンパターンに関して、似たコーディングはあったのですが、あらわにはコーディングされていなかったので、ソースを書き換えました。
サンプルプログラムのソースファイルを GitHub andropenguin/CustomStyledDialogsSample
に置きます。
参考サイト