android-从PreferenceActivity或PreferenceFragment中的资源添加特定的命名SharedPreferences

如果我具有Preference-Activity或-Fragment,则可以提供preference.xml文件来构建我的PreferenceScreen,并通过addPreferenceFromResource(R.xml.preference)进行显示.

然后可以通过PreferenceManager.getDefaultSharedPreferences(Context)检索更改的值.

我只是想知道是否可以将片段的默认首选项设置为默认值.

我希望有一个PreferenceFragment能够将其首选项(通过xml提供)存储在可以通过context.getSharedPreferences(“ customPrefName”,Context.MODE_PRIVATE)检索的Preferences中.
但是我在xml中找不到类似的东西

<PreferenceScreen android:prefName="customPrefName">...

解决方法:

如果要具有自定义首选项xml文件,则需要设置首选项名称,然后再将其从PreferenceFragment类的xml添加到屏幕.

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()方法之前设置共享首选项名称.

上一篇:android – 无法使用PreferenceActivity获取首选项


下一篇:实验九 使用SharedPreferences存储简单数据