Android:如何检查共享首选项是否存在,以及如何删除它们

时间:2010-10-31 10:17:23

标签: android

要检查是否存在偏好,我尝试了这种方式,但每次都显示为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));

更新:我发现,如果我在相同的视图中检查偏好设置,我保存的位置,此检查工作正常,但我怎么能在不同的视图中执行此操作?

更新:我猜对了,谢谢大家!

2 个答案:

答案 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;