質問するログイン新規登録

回答編集履歴

2

修正

2018/06/21 15:21

投稿

keicha_hrs
keicha_hrs

スコア6768

answer CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  ---
8
8
 
9
- これは申し訳ない。PreferenceFragmentはSupport LibraryではないFragmentを継承しているから、確かにこれではselectedFragmentに入れられないですね。これを通すには、android.support.v4.app.Fragmentを継承したPreferenceFragmentCompatにしなければならないのか。こちらならば、変数selectedFragmentにそのまま代入できるでしょう。
9
+ これは申し訳ない。PreferenceFragmentはSupport Libraryではないandroid.app.Fragmentを継承しているから、確かにこれでは変数selectedFragmentに入れられないですね。これを通すには、android.support.v4.app.Fragmentを継承したPreferenceFragmentCompatにしなければならないのか。こちらならば、変数selectedFragmentにそのまま代入できるでしょう。
10
10
 
11
11
  PreferenceFragmentCompatでは生成されるときにonCreatePreferences()が呼ばれるので、下記のように実装すればいいと思います。
12
12
 

1

回答修正

2018/06/21 15:21

投稿

keicha_hrs
keicha_hrs

スコア6768

answer CHANGED
@@ -2,4 +2,39 @@
2
2
 
3
3
  ```Java
4
4
  public class Mypage extends PreferenceFragment {
5
- ```
5
+ ```
6
+
7
+ ---
8
+
9
+ これは申し訳ない。PreferenceFragmentはSupport LibraryではないFragmentを継承しているから、確かにこれではselectedFragmentに入れられないですね。これを通すには、android.support.v4.app.Fragmentを継承したPreferenceFragmentCompatにしなければならないのか。こちらならば、変数selectedFragmentにそのまま代入できるでしょう。
10
+
11
+ PreferenceFragmentCompatでは生成されるときにonCreatePreferences()が呼ばれるので、下記のように実装すればいいと思います。
12
+
13
+ ```Java
14
+ import android.os.Bundle;
15
+ import android.support.v7.preference.PreferenceFragmentCompat;
16
+ import android.support.v7.preference.PreferenceManager;
17
+
18
+ public class Mypage extends PreferenceFragmentCompat {
19
+
20
+ @Override
21
+ public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
22
+ PreferenceManager prefMgr = getPreferenceManager();
23
+ prefMgr.setSharedPreferencesName("name_and_age");
24
+
25
+ addPreferencesFromResource(R.xml.mypage);
26
+ }
27
+ }
28
+ ```
29
+
30
+ また、PreferenceFragmentCompatを使うためには、app/build.gradleのdependenciesブロックに
31
+
32
+ ```gradle
33
+ dependencies {
34
+ // 略
35
+ implementation 'com.android.support:preference-v7:27.1.1'
36
+ }
37
+ ```
38
+ のように1行追加する必要がありますね。
39
+
40
+ [PreferenceFragmentCompatのリファレンス](https://developer.android.com/reference/android/support/v7/preference/PreferenceFragmentCompat)