PreferenceActivity如何使用自定义首选项文件

时间:2011-03-02 15:16:49

标签: android android-preferences

我首次尝试偏好时却不了解PreferenceActivity。所以现在我有一个应用程序将所有用户首选项存储在特定的首选项文件中。

我想迁移到使用PreferenceActivity,但我也希望我的用户保留他们的偏好。

有没有办法告诉我的PreferenceActivity将该特定文件用于所有首选项?

3 个答案:

答案 0 :(得分:67)

发布此内容可能为时已晚,但您可以在这里找到一个不错的解决方案

您可以预先设置默认共享首选项文件的名称,如下所示:

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);
    }
}

我希望这有助于某人。

问候。

答案 1 :(得分:1)

您可以在应用开头阅读所有偏好设置,然后使用

将其存储在Preferences
Editor e = PreferenceManager.getDefaultSharedPreferences(getBaseContext()).edit();
e.putBoolean("yourPreference", true);
e.putString("yourOtherPreference", "This is the Value");
...
e.commit();

我希望有帮助

答案 2 :(得分:0)

Maaalte是正确的,您想要做的是onCreate测试是否存在您的自定义文件,如果存在,请将其重命名为标准的共享首选项文件名。

另一种选择是逐个读取旧的首选项,并在阅读时使用共享首选项API添加它们,然后在完成后删除旧的首选项。