要检查是否存在偏好,我尝试了这种方式,但每次都显示为null(可能是因为我在不同视图中保存了偏好设置):
String def = null;
String test = getPreferences(MODE_PRIVATE).getString(PREF_GAME,def);
if(test == null) Log.v("main", "no saved data");
要删除首选项我尝试了editor.clear(),但它没有删除(但每次返回true时都是commit()):
SharedPreferences preferences = getSharedPreferences(PREF_GAME,MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.clear();
boolean tt = editor.commit();Log.v("DELETE PREF", String.valueOf(tt));
更新:我发现,如果我在相同的视图中检查偏好设置,我保存的位置,此检查工作正常,但我怎么能在不同的视图中执行此操作?
更新:我猜对了,谢谢大家!
答案 0 :(得分:2)
使用getSharedPreferences()
获取您的偏好。
getSharedPreferences() - 如果您需要使用第一个参数指定的名称标识的多个首选项文件,请使用此选项。
getPreferences() - 如果您的活动只需要一个偏好设置文件,请使用此选项。因为这将是您的Activity的唯一首选项文件,所以您不提供名称。
答案 1 :(得分:0)
这是我的代码:
public String prefGet(String id) {
SharedPreferences opener = getPreferences(MODE_PRIVATE);
String value = opener.getString(id, "Default");
return value;