2012年2月17日金曜日

Android の設定画面はPreferenceActivity !

アンドロイドでよくある設定画面。
どうやって作るのか?

最初、レイアウトで独自に作ったり、
リストビュー(ListView) を使うのかと思ったりして遠回りしましたが、
正解は、PreferenceActivity を使うことです。

XML (レイアウトのとは別) へ定義するだけで、自動的に設定画面風に表示され、かつ、自動的にプリファレンスに保存までしてくれます!

個人的に、超感動!

やり方は、ググれば出てきますが、読んでるだけじゃイマイチ分からないかも?
実際にやってみて、理解できました。
ここでも後日、解説を書こうと思います。

書きました↓

追記)やり方

①プリジェクト右クリック→New→Android XML File →Resource Type でPreference を選び、ファイル名はご自由に。
②(勝手に出てくる場合もありますが)Preference.XMLのファイルを右クリック→Open With →Android Xml Resources Editor を選択するとGUIの画面になります。
③Add... ボタンをクリックして設定したい要素を選択します。
※TOPに置くのか、配下に置くのか、ラジオボタンの選択が出る場合もありますが、あまり気にしなてくていいと思います。
あとはドンドン追加して設定していくだけ。

☆ 設定出来る要素の種類
CheckBoxPreference
チェックボックスが設定できます。
最低限、必要だろう指定は、
・Key :プリフェランスに保存してくれる時に設定するKey (呼び出す時、分かるように。)
・Title  :(チェックボックスに)表示する文字列
の2つだけかな。
Summary on/off でチェックボックスにチェック入った時とそうでない時のメッセージを指定できる。(コードに書かなくていいので簡単!)
最初からチェック入れておきたい時は、Default value にtrue と直接記述する。

EditTextPreference
文字編集、保存できます。
最低限必要な指定は、上のCheckBoxPreference と同じ。

ListPreference
ラジオボタン付きのリストが表示される。(選択できるのは1つだけ)
最低限必要な実装は、
・Entries  :画面上のリストに表示する文字列
・Entry values :そのリストの各要素が、実際に保持している値
これらは、values でstring型のarrayリストとして設定します。
(ちなみにint型のarrayリストをEntry values の方に設定したら見事エラー^^; String型しか対応してない?)
あとは同上。
デフォルトで選択させておきたい場合は、やはりDefault value にvalues に設定した値を書きます。

Preference
特に機能のない項目が作れます。
もちろん機能ないといっても、Java側で、この項目をクリックしたら~するとか、そういうのは好きなように実装できます。

PreferenceCategory
設定画面の中の、サブタイトル的な表示になります。
Title に文字列指定するくらい?

PreferenceScreen
この設定画面の大元。タイトルバーにバッチリ表示されます。
これも基本的には、Title に文字列指定するくらいかなと思いますが、
使い方のポイントしては、これ入れ子に出来るんですね。
入れ子にすると、次の画面が簡単に作れます!

RingtonePreference
使ったことないんで、ノーコメント^^;

0 件のコメント: