設定アクティビティに設定値の表示
左側:前項の設定アクティビティ(赤枠部:色の設定項目の設定色がわからない)
右側:本項の設定アクティビティ(赤枠部:色の設定項目の設定色がわかる)
設定アクティビティを作成する方法を解説します。
前項「色設定プリファレンス」で作成した設定アクティビティは、 「色を設定する設定項目」の設定色は表示されません。設定色を確認するには、設定項目をクリックし、「色設定ダイアログ」を表示する必要があります(上図左側)。
本項では、設定アクティビティに、「色を設定する設定項目」の右側に設定色が表示されるようにします(上図右側)。
解説
前項に対する処理の変更は以下です。
- 設定アクティビティの設定項目の右側に設定色を表示するためのウィジェットレイアウトを作成します。
- 「色を設定する設定項目」の設定色を表示するプリファレンスクラスを作成します。
- 「色を設定する設定項目」の設定色を変更する色設定ダイアログのための
- プリファレンスファイルに定義した「テキストを指定する設定項目」「リストから1つの項目を選択する設定項目」「リストから複数の項目を選択する設定項目」のプリファレンスクラスを、設定値を表示するプリファレンスクラスに変更します。
実装
アプリの仕様
- アプリを起動すると、メインアクティビティが表示される。
- オプションメニューの「Settings」を選択すると、設定アクティビティに移行する。
- 設定アクティビティには、自前の設定項目が表示される。
- メインアクティビティには、自前の設定項目の設定値が表示される。
- 設定アクティビティには、「テキストを指定する設定項目」「リストから1つの項目を選択する設定項目」「リストから複数の項目を選択する設定項目」の右側に設定値が表示される。
- 設定アクティビティには、「色を設定する設定項目」が表示される。
- 「色を設定する設定項目」をタップすると色設定ダイアログが表示され、設定色を変更することができる。
- メインアクティビティには、「色を設定する設定項目」の設定値が表示される。
- 設定アクティビティの「色を設定する設定項目」の右側に設定値が表示される。(本項で追加)
プロジェクトを開く
「色設定プリファレンス」で作成したプロジェクトを開きます。
ウィジェットレイアウトの作成
設定アクティビティの設定項目の右側に設定色を表示するためのウィジェットレイアウトを作成します。
「Project」ペインの「app > res > layout」を右クリックします。
右クリックメニュー「New > Layout Resource File」を選択します。
File name欄に「widget_colorimage」と入力します。
「OK」ボタンを押します。
widget_colorimage.xml が作成されます。
レイアウト内容を、設定色を表示するためのImageViewのみにします。
widget_colorimage.xml の内容を以下のようにします。
設定値表示テキスト編集プリファレンスクラスの作成
設定アクティビティに設定色を表示する色設定プリファレンスクラスを作成します。
「Project」ペインの「app > java > ドメイン.パッケージ名」を右クリックします。
右クリックメニュー「New > Java Class」を選択します。
クラス名欄に「DisplayValueColorPreference」と入力しエンターキーを押します。
続いて表示されるダイアログは、内容変更せず、「OK」ボタンを押します。
「DisplayValueColorPreference」クラスができました。
「DisplayValueColorPreference」クラスファイルの内容を以下のようにします。
プリファレンスファイルの編集
プリファレンスファイルに定義した「色を設定する設定項目」のプリファレンスクラスを、設定色を表示するプリファレンスクラスに変更します。
- 「パッケージ名.ColorPreference」を「パッケージ名.DisplayValueColorPreference」に変更します。
プリファレンスファイル「root_preferences.xml」の内容を以下のようにします。
リビルドし、エラー、警告がないことを確認します。
実行
Android端末にて、動作確認。
設定アクティビティに、 「色を設定する設定項目」の設定色が、設定項目の右側に表示されます(赤枠部)。設定値を確認するにために設定項目をクリックする必要がなくなりました。
それ以外はの動作は、前項と変わりません。
ダウンロード
サンプルコード
github.com上のリポジトリページ
関連ページ
- 設定アクティビティの作成
- 設定アクティビティのカスタマイズ
- 設定アクティビティに設定値の表示
- 色設定プリファレンス - 前項
- 設定アクティビティに設定色の表示 - 本項