設定アクティビティのカスタマイズ
設定アクティビティを作成する方法を解説します。
前項「設定アクティビティの作成」で作成した設定アクティビティの設定項目は自動生成された設定項目でした。
本項では、設定項目を自前の設定項目に変更します。
解説
自動生成された設定項目を削除し、以下の5つの設定項目を追加します。
- チェックボックスでOn/Offを切り替える設定項目
- スイッチでOn/Offを切り替える設定項目
- テキストを指定する設定項目
- リストから1つの項目を選択する設定項目
- リストから複数の項目を選択する設定項目
前項に対する処理の変更は以下です。
- プリファレンスファイルから、自動生成された設定項目を削除します。
- プリファレンスファイルに、自前の設定項目を追加します。
- 文字列配列リソースファイルに、自前の設定項目に関する文字列配列を追加します。
- メインアクティビティに設定値を表示するために、メインアクティビティのレイアウトを変更します。
- メインアクティビティに自前の設定項目の設定値を表示する処理を追加します。
実装
アプリの仕様
- アプリを起動すると、メインアクティビティが表示される。
- オプションメニューの「Settings」を選択すると、設定アクティビティに移行する。
- 設定アクティビティには、自前の設定項目が表示される。(本項で追加)
- メインアクティビティには、自前の設定項目の設定値が表示される。(本項で追加)
プロジェクトを開く
「設定アクティビティの作成」で作成したプロジェクトを開きます。
プリファレンスファイルの編集
プリファレンスファイル「root_preferences.xml」から、自動生成された設定項目を削除します。
プリファレンスファイル「root_preferences.xml」に、自前の設定項目を追加します。
プリファレンスファイル「root_preferences.xml」の内容を以下のようにします。
文字列配列リソースファイルの編集
文字列配列リソースファイル「arrays.xml」に、自前の設定項目に関する文字列配列を追加します。
文字列配列リソースファイル「arrays.xml」の内容を以下のようにします。
メインアクティビティのレイアウトファイルの編集
メインアクティビティに設定値を表示するために、メインアクティビティのレイアウトを変更します。
「Hello World!」と表示するためのTextViewを、設定値を表示するためのTextViewに変更します。
- 「android:id="@+id/textview_settings"」を追加します。
- 「android:text="Hello World!"」を削除します。
メインアクティビティのレイアウトファイル「activity_main.xml」の内容を以下のようにします。
メインアクティビティクラスの編集
メインアクティビティに設定値を表示するために、処理を追加します。
「MainActivity」クラスの末尾に、onResume関数を追加します。
- 設定値の読み込み処理を追加します。
- 設定値の表示処理を追加します。
「MainActivity」クラスの内容を以下のようにします。
「Cannot resolve symbol」エラーは、「Alt + Enter」で、必要なクラスをimportします。
リビルドし、エラー、警告がないことを確認します。
実行
Android端末にて、動作確認。
アプリを起動すると、メインアクティビティが表示されます。
メインアクティビティには、設定項目の設定値が表示されます。
右上のオプションメニューの「Settings」を選択すると、「設定アクティビティ」に移行します。
テキストを指定する設定項目を選択すると、テキスト入力ダイアログが表示されます。
リストから選択する設定項目を選択すると、項目選択ダイアログが表示されます。
設定を変更し、メインアクティビティに戻ると、変更した設定値が画面に表示されます。
設定アクティビティで変更した設定は、アプリを終了しても、次回アプリを起動した際には、設定内容が復元されます。
関連ページ
- 設定アクティビティの作成 - 前項
- 設定アクティビティのカスタマイズ - 本項
- 設定アクティビティに設定値の表示 - 次項
- 色設定プリファレンス
- 設定アクティビティに設定色の表示