回答編集履歴

2

修正

2018/06/21 15:21

投稿

keicha_hrs
keicha_hrs

スコア6768

test CHANGED
@@ -14,7 +14,7 @@
14
14
 
15
15
 
16
16
 
17
- これは申し訳ない。PreferenceFragmentはSupport LibraryではないFragmentを継承しているから、確かにこれではselectedFragmentに入れられないですね。これを通すには、android.support.v4.app.Fragmentを継承したPreferenceFragmentCompatにしなければならないのか。こちらならば、変数selectedFragmentにそのまま代入できるでしょう。
17
+ これは申し訳ない。PreferenceFragmentはSupport Libraryではないandroid.app.Fragmentを継承しているから、確かにこれでは変数selectedFragmentに入れられないですね。これを通すには、android.support.v4.app.Fragmentを継承したPreferenceFragmentCompatにしなければならないのか。こちらならば、変数selectedFragmentにそのまま代入できるでしょう。
18
18
 
19
19
 
20
20
 

1

回答修正

2018/06/21 15:21

投稿

keicha_hrs
keicha_hrs

スコア6768

test CHANGED
@@ -7,3 +7,73 @@
7
7
  public class Mypage extends PreferenceFragment {
8
8
 
9
9
  ```
10
+
11
+
12
+
13
+ ---
14
+
15
+
16
+
17
+ これは申し訳ない。PreferenceFragmentはSupport LibraryではないFragmentを継承しているから、確かにこれではselectedFragmentに入れられないですね。これを通すには、android.support.v4.app.Fragmentを継承したPreferenceFragmentCompatにしなければならないのか。こちらならば、変数selectedFragmentにそのまま代入できるでしょう。
18
+
19
+
20
+
21
+ PreferenceFragmentCompatでは生成されるときにonCreatePreferences()が呼ばれるので、下記のように実装すればいいと思います。
22
+
23
+
24
+
25
+ ```Java
26
+
27
+ import android.os.Bundle;
28
+
29
+ import android.support.v7.preference.PreferenceFragmentCompat;
30
+
31
+ import android.support.v7.preference.PreferenceManager;
32
+
33
+
34
+
35
+ public class Mypage extends PreferenceFragmentCompat {
36
+
37
+
38
+
39
+ @Override
40
+
41
+ public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
42
+
43
+ PreferenceManager prefMgr = getPreferenceManager();
44
+
45
+ prefMgr.setSharedPreferencesName("name_and_age");
46
+
47
+
48
+
49
+ addPreferencesFromResource(R.xml.mypage);
50
+
51
+ }
52
+
53
+ }
54
+
55
+ ```
56
+
57
+
58
+
59
+ また、PreferenceFragmentCompatを使うためには、app/build.gradleのdependenciesブロックに
60
+
61
+
62
+
63
+ ```gradle
64
+
65
+ dependencies {
66
+
67
+ // 略
68
+
69
+ implementation 'com.android.support:preference-v7:27.1.1'
70
+
71
+ }
72
+
73
+ ```
74
+
75
+ のように1行追加する必要がありますね。
76
+
77
+
78
+
79
+ [PreferenceFragmentCompatのリファレンス](https://developer.android.com/reference/android/support/v7/preference/PreferenceFragmentCompat)