<HOME

PreferenceFragmentを使用して設定画面を表示する30分


前回はPreferenceActivityを使用して設定画面を作る方法について学習しました。

しかし、Android3.0以降のバージョンでは、設定画面を作るのに、PreferenceFragmentを使用することが推奨されています。

詳細については公式サイトに記載されています。

  • アプリが 3.0 よりも前のバージョンの Android(API レベル 10 以下)をサポートしている場合は、PreferenceActivity クラスを継承してアクティビティを作成する必要があります。
  • Android 3.0 以降では、代わりに、アプリの設定を表示する PreferenceFragment をホストする従来の Activity を使用します。ただし、設定のグループが複数ある場合は、PreferenceActivity を使用して大きな画面用の 2 ペイン レイアウトを作成することもできます。

PreferenceFragmentを使用して設定画面を作る方法について学習します。

  1. 「PreferenceFragmentTraining」アプリを作成します。

    1. Android Studioを起動し、新規プロジェクトを作成します。

      「Welcome to Android Studio」画面の場合は、「Start a new Android Studio project」をクリックします。

      別のプロジェクトが開いている場合は、ツールバーから「File」→「New」→「New Project...」をクリックします。

    2. HelloWorldの時と同じようにプロジェクトを作成していきます。

      アプリ名は「PreferenceFragmentTraining」としてください。

      今回は「Backwards Compatibility (AppCompat)」のチェックは外しておきます。

  2. PreferenceActivityの項と同様に、PreferenceScreenのリソースファイルを作成します。


    設定画面に表示するリソースを作成します。

    1. 「preferences.xml」を追加し、以下のように変更します。

      併せて、文字列リソースと配列リソースも追加します。

      res/xml/preferences.xml

      コードを表示するにはJavaScriptを有効にしてください

      サンプル : res/values/strings.xml

      コードを表示するにはJavaScriptを有効にしてください

      サンプル : res/values/arrays.xml

      コードを表示するにはJavaScriptを有効にしてください

      記述内容の詳細についてはPreferenceActivityの項で復習してください。

  3. ソースコードを編集します。

    1. 「PreferenceFragment」クラスを継承した設定画面用のFragmentクラスを作成します。

      クラス名は「SettingsFragment」とします。


      PreferenceActivityの項で学習したのとほぼ同じように実装できますので、処理を記述します。

      サンプル : SettingsFragment.java

      コードを表示するにはJavaScriptを有効にしてください

      記述内容の詳細についてはPreferenceActivityの項で復習してください。

    2. SettingsFragmentを表示するためのActivityクラスを作成します。

      クラス名は「SettingsActivity」とします。

      サンプル : SettingsActivity.java

      コードを表示するにはJavaScriptを有効にしてください

      ActivityのonCreateで、コンテンツ表示領域にSettingsFragmentを配置する処理を実装します。


      ActivityのFragmentManagerからFragmentTransactionインスタンスを取得し、

      Activityのコンテンツ表示領域のView(android.R.id.content)に対して、SettingsFragmentインスタンスで置き換えています。

      FragmentTransactionの「commit」メソッドをコールして変更を確定しています。

    3. MainActivityに、設定値に応じて表示を変更する処理を実装します。

      サンプル : MainActivity.java

      コードを表示するにはJavaScriptを有効にしてください

      サンプル : res/layout/activity_main.xml

      コードを表示するにはJavaScriptを有効にしてください

      サンプル : res/menu/options.xml

      コードを表示するにはJavaScriptを有効にしてください

  4. アプリを起動して、動作を確認してみましょう。

PreferenceFragmentに関する詳細については公式ドキュメントに記載されています。

また、Androidは先人たちがネット上にたくさんの情報を残してくれています。

これらも活用して、是非このAPIを有効に使えるようになってください。