从 PreferenceActivity 或 PreferenceFragment 中的资源添加特定命名的 SharedPreferences
add specific named SharedPreferences from resource in PreferenceActivity or PreferenceFragment
如果我有 Preference-Activity
或 -Fragment
,我可以提供一个 preference.xml 文件来构建我的 PreferenceScreen
并通过 addPreferenceFromResource(R.xml.preference)
[=17 显示它=]
然后可以通过 PreferenceManager.getDefaultSharedPreferences(Context)
检索更改的值
我只是想知道是否可以为我的 Fragment 使用默认首选项以外的选项。
我想要一个能够在我可以通过 context.getSharedPreferences("customPrefName", Context.MODE_PRIVATE)
检索的首选项中存储其首选项(通过 xml 提供)的 PreferenceFragment
但我在 xml 中找不到像
这样的东西
<PreferenceScreen android:prefName="customPrefName">...
如果您想要自定义首选项 xml 文件,您需要在将首选项名称从 xml 添加到您的 PreferenceFragment class.[=11= 中的屏幕之前设置首选项名称]
public class CustomNamePreferenceFragment extends PreferenceFragment {
private static final String PREF_FILE_NAME = "custom_name_xml";
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
PreferenceManager preferenceManager = getPreferenceManager();
preferenceManager.setSharedPreferencesName(PREF_FILE_NAME);
addPreferencesFromResource(R.xml.prefs);
... //rest of the code
}
}
注意:您需要在超级调用 onCreate() 之后和调用 addPreferencesFromResource() 方法之前设置共享首选项名称。
如果我有 Preference-Activity
或 -Fragment
,我可以提供一个 preference.xml 文件来构建我的 PreferenceScreen
并通过 addPreferenceFromResource(R.xml.preference)
[=17 显示它=]
然后可以通过 PreferenceManager.getDefaultSharedPreferences(Context)
我只是想知道是否可以为我的 Fragment 使用默认首选项以外的选项。
我想要一个能够在我可以通过 context.getSharedPreferences("customPrefName", Context.MODE_PRIVATE)
检索的首选项中存储其首选项(通过 xml 提供)的 PreferenceFragment
但我在 xml 中找不到像
<PreferenceScreen android:prefName="customPrefName">...
如果您想要自定义首选项 xml 文件,您需要在将首选项名称从 xml 添加到您的 PreferenceFragment class.[=11= 中的屏幕之前设置首选项名称]
public class CustomNamePreferenceFragment extends PreferenceFragment {
private static final String PREF_FILE_NAME = "custom_name_xml";
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
PreferenceManager preferenceManager = getPreferenceManager();
preferenceManager.setSharedPreferencesName(PREF_FILE_NAME);
addPreferencesFromResource(R.xml.prefs);
... //rest of the code
}
}
注意:您需要在超级调用 onCreate() 之后和调用 addPreferencesFromResource() 方法之前设置共享首选项名称。