在PreferenceActivity中使用非默认首选项

bar*_*rry 12 android preferenceactivity sharedpreferences

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

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

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

先谢谢你,巴里

小智 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);
    }
}
Run Code Online (Sandbox Code Playgroud)

addPreferencesFromResource()必须被称为setSharedPreferencesName()!