【发布时间】:2014-08-09 20:05:47
【问题描述】:
我想将 SharedPreference 从布尔值更改为字符串。默认值为 true 并将“启用”。这不是问题,因为它会自动设置。但是如何检查它是否设置为 false,然后将新的首选项设置为“禁用”?是否有在应用程序更新期间调用的方法可以迁移此首选项? 如果我不迁移它,则此首选项的状态会在更新期间丢失...
【问题讨论】:
标签: android updates android-preferences migrate
我想将 SharedPreference 从布尔值更改为字符串。默认值为 true 并将“启用”。这不是问题,因为它会自动设置。但是如何检查它是否设置为 false,然后将新的首选项设置为“禁用”?是否有在应用程序更新期间调用的方法可以迁移此首选项? 如果我不迁移它,则此首选项的状态会在更新期间丢失...
【问题讨论】:
标签: android updates android-preferences migrate
SharedPreferences preferences = // obtain it
String pref;
try {
pref = preferences.getString("yourPref", "enabled");
} catch (ClassCastException e) {
// this means the pref is stored as a boolean
boolean boolPref = preferences.getBoolean("yourPref", true);
// store it instead as a String
pref = boolPref ? "enabled" : "disabled";
preferences.edit().remove("yourPref").putString("yourPref", pref).commit();
}
【讨论】:
您可以在第一个打开的活动中添加一个简单的方法,为您更新首选项值。此外,添加一个检查,使其仅在第一次执行。
【讨论】: