在PreferenceActivity中使用非默认首选项

时间:2011-11-06 12:46:28

标签: android sharedpreferences preferenceactivity

使用PreferenceActivity,Android会自动保存简单的首选项,例如正在检查的复选框等。我有几个问题:

1 - 这些偏好在哪里得到保存?是否与PreferenceManager.getDefaultSharedPreferences(Context)返回的首选项文件相同?

2 - 有没有办法使用不同的偏好设置?即使用context.getSharedPreferences(String name,int mode),您可以提供一个字符串来标识一组特定的首选项。是否可以在这样返回的一组首选项中保存PreferenceActivity的首选项?

提前致谢, 百里

1 个答案:

答案 0 :(得分:13)

是的,这是可能的。

看一看: http://idlesun.wordpress.com/2011/04/08/how-to-make-preferenceactivity-use-non-default-sharedpreferences/#comment-36

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()之后调用!