2013-04-18 22 views
0

我试图在我的源代码中检查几个值,它看起来都是空的。由于我的SharedPreferences实现,我应该可以在我的新类中使用这些值,但它看起来不起作用。 (我似乎是俯瞰简单的东西。)简单的Android SharedPreferences实现:方法失败 - 所有的值都是空的

起始点之类SharedPreferences实现:

SharedPreferences prefs=getPreferences(Context.MODE_PRIVATE); 
    SharedPreferences.Editor editor=prefs.edit(); 
    editor.putBoolean("name",true); 
    editor.putBoolean("cap",true); 
    editor.putBoolean("code",true); 
    editor.putBoolean("time",true); 
    editor.putBoolean("ssid",true); 
    editor.commit(); 

端点类SharedPreferences实现:

SharedPreferences prefs=getPreferences(Context.MODE_PRIVATE); 
    SharedPreferences.Editor editor=prefs.edit(); 
    if (new == null) { 
     Log.d(TAG, "Broken Value! Debug! Debug!"); 
    prefs.getBoolean("new", true); 
    prefs.getBoolean("user", true); 
    prefs.getBoolean("name", true); 
    prefs.getBoolean("data", true); 
    prefs.getBoolean("login", true); 
    editor.commit(); 

在我的终点的值显示为空当我检查他们 - 任何想法为什么?我相信它们不应该是null,因为我实现了SharedPreferences,但它们仍然都返回null。 (我可以发誓我正确地实现这一点 - 我不知道为什么我不能检索这些值 - 我相信一切应该发挥作用 - 但奇怪的是:它不是)

第一次尝试提供的解决方案:

SharedPreferences prefs=getPreferences(NDEF_PREF, Context.MODE_PRIVATE); 
     SharedPreferences.Editor editor=prefs.edit(); 
      prefs.getBoolean("name", true); 
      prefs.getBoolean("cap", true); 
      prefs.getBoolean("code", true); 
      prefs.getBoolean("time", true); 
      prefs.getBoolean("ssid", true); 
      editor.commit(); 

回答

0

你没有得到的SharedPreferences,试试这个来代替:

SharedPreferences prefs = getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE); 

哪里PREFS_NAME是你给的文件名。

你也可以这样做:

SharedPreferences.Editor editor=prefs.edit(); 
prefs.getBoolean("new", true); 

由于编辑类没有这个方法......相反,你应该用你的prefs变量获得的值。

然后看看你在保存和恢复什么......在这两种情况下唯一的价值是“名称”,所以其他人将是错误的。

编辑

例子:

String NDEF_PREF = "prefs"; 
SharedPreferences prefs = getSharedPreferences(NDEF_PREF, Context.MODE_PRIVATE); 
prefs.getBoolean("name", true); 
prefs.getBoolean("cap", true); 
prefs.getBoolean("code", true); 
prefs.getBoolean("time", true); 
prefs.getBoolean("ssid", true); 
+0

真棒!谢谢! –

+0

如果我上面的编辑看起来正确,你能告诉我吗?我收到一个错误,说明NDEF_PREF无法解析为一个变量,并且当我尝试使用null进行检查时:if(name == null){Logged Log.d(TAG,“Broken Value!Debug!Debug!”); 我得到“名称无法解析为变量”,我甚至试图通过logcat运行它 –

+0

看看我的编辑。你必须声明变量。 – Aballano

相关问题