在PreferenceActivity中使用非默认偏好设置

16

使用PreferenceActivity,Android会自动保存简单的偏好设置,比如勾选复选框等。我有几个问题:

1 - 这些设置被保存在哪里?是 PreferenceManager.getDefaultSharedPreferences(Context) 返回的同一个偏好设置文件吗?

2 - 是否有一种方法可以使用不同的偏好设置集合?例如,使用 context.getSharedPreferences(String name, int mode) 可以提供一个字符串来标识特定的偏好设置集合。是否可能将从PreferenceActivity中保存的偏好设置保存在像这样返回的偏好设置集合中?

谢谢您的帮助,Barry


你好,你有这个问题的答案吗? - Its not blank
1个回答

16

是的,这是可能的。

可以看一下这个链接: https://idlesun.blogspot.com/2012/12/how-to-make-preferenceactivity-use-non.html

public class MyPreferencesActivity extends PreferenceActivity {
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        PreferenceManager prefMgr = getPreferenceManager();
        prefMgr.setSharedPreferencesName("my_preferences");
        prefMgr.setSharedPreferencesMode(MODE_WORLD_READABLE);

        addPreferencesFromResource(R.xml.preferences);
    }
}

addPreferencesFromResource() 必须在调用 setSharedPreferencesName() 之后使用!


链接的危险性...它们已经将位置更新为http://idlesun.blogspot.com/2012/12/how-to-make-preferenceactivity-use-non.html -- 然而,这个链接对本篇帖子只有一点点的补充... @stephane发布了重要的代码。 :) - user1932079

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接