Androidの設定画面(PreferenceFragmentCompat)
最初はPreferenceFragmentを使えばできそうかなと思ったんですが、
API Level 28からdeprecatedになるようです。
https://developer.android.com/reference/android/preference/PreferenceFragment.html
なので、代わりのPreferenceFragmentCompatで実装してみます。
https://developer.android.com/reference/android/support/v7/preference/PreferenceFragmentCompat
手順1.Support Libraryのセットアップ
PreferenceFragmentCompatを使うためにはSupport Libraryをセットアップしなければならないので、app/build.gradleのdependenciesブロックに
implementation 'com.android.support:preference-v7:28.0.0'
のように記述してあげる必要があります。
https://developer.android.com/topic/libraries/support-library/packages
手順2.設定画面のxml用意
res直下にxmlフォルダを作成し、設定画面のXMLを追加します
手順3.設定画面のxml読み込み
PreferenceFragmentCompatを継承したクラスはonCreatePreferencesをoverrideする必要があります。この中でXMLからpreferenceをロードします。
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
// Load the preferences from an XML resource
setPreferencesFromResource(R.xml.preference, rootKey);
}
手順4.設定画面呼び出し
あとは設定画面を呼び出すトリガとなるイベントのイベントハンドラで、設定画面の表示処理を記述する。
public void onClickSetting(View view) {
FragmentTransaction transaction = fragmentManager.beginTransaction();
Fragment fragment = new SettingFragment();
transaction.replace(R.id.rootView, fragment);
transaction.addToBackStack(null);
transaction.commit();
}
これで設定画面が表示されました。