色設定プリファレンス



設定アクティビティを作成する方法を解説します。

本項では、色を設定するプリファレンスを作成します。

解説

前項に対する処理の変更は以下です。

実装

アプリの仕様

プロジェクトを開く

設定アクティビティに設定値の表示」で作成したプロジェクトを開きます。

色設定ダイアログレイアウトの作成

色設定を行う際に使用する色設定ダイアログのレイアウトを作成します。

「Project」ペインの「app > res > layout」を右クリックします。
右クリックメニュー「New > Layout Resource File」を選択します。

File name欄に「dialog_colorpreference」と入力します。
「OK」ボタンを押します。

dialog_colorpreference.xml が作成されます。

レイアウト内容を、色を表示するImageView、RGB値を表示する3つのTextView、RGB値を設定する3つのSeekBar、などを配置したレイアウトにします。

dialog_colorpreferencet.xml の内容を以下のようにします。

色設定プリファレンスクラスの作成

色設定プリファレンスクラスを作成します。

「Project」ペインの「app > java > ドメイン.パッケージ名」を右クリックします。
右クリックメニュー「New > Java Class」を選択します。

クラス名欄に「ColorPreference」と入力しエンターキーを押します。
続いて表示されるダイアログは、内容変更せず、「OK」ボタンを押します。
「ColorPreference」クラスができました。

「ColorPreference」クラスファイルの内容を以下のようにします。

色設定プリファレンスダイアログフラグメントクラスの作成

色設定プリファレンスの色設定ダイアログのためのダイアログフラグメントクラスを作成します。

「Project」ペインの「app > java > ドメイン.パッケージ名」を右クリックします。
右クリックメニュー「New > Java Class」を選択します。

クラス名欄に「ColorPreferenceDialogFragmentCompat」と入力しエンターキーを押します。
続いて表示されるダイアログは、内容変更せず、「OK」ボタンを押します。
「ColorPreferenceDialogFragmentCompat」クラスができました。

「ColorPreferenceDialogFragmentCompat」クラスファイルの内容を以下のようにします。

設定フラグメントクラスの編集

設定フラグメントクラスに、色設定ダイアログを表示する処理を追加します。

設定アクティビティクラス「MySettingsActivity」の内部に定義された設定フラグメントクラス「SettingsFragment」の末尾に、onDisplayPreferenceDialog関数を追加します。

「MySettingsActivity」クラスファイルの内容を以下のようにします。

プリファレンスファイルの編集

プリファレンスファイル「root_preferences.xml」に、色を設定する設定項目を追加します。

プリファレンスファイル「root_preferences.xml」の内容を以下のようにします。

メインアクティビティクラスの編集

メインアクティビティの設定値を表示するための処理に、色の設定値を表示する処理を追加します。

「MainActivity」クラスの onResume関数を変更します。

「MainActivity」クラスの内容を以下のようにします。


「Cannot resolve symbol」エラーは、「Alt + Enter」で、必要なクラスをimportします。

リビルドし、エラー、警告がないことを確認します。

実行

Android端末にて、動作確認。

アプリを起動すると、メインアクティビティが表示されます。
メインアクティビティには、設定項目の設定値が表示されます。
色を設定する設定項目の設定値も表示されます。


右上のオプションメニューの「Settings」を選択すると、「設定アクティビティ」に移行します。



色を設定する設定項目を選択すると、色設定ダイアログが表示されます。


色設定ダイアログのスライダーを調整し色の設定を変更します。


設定を変更し、メインアクティビティに戻ると、変更した設定値が画面に表示されます。



設定アクティビティで変更した設定は、アプリを終了しても、次回アプリを起動した際には、設定内容が復元されます。

関連ページ

参考WEBサイト