简单Android SharedReferences实现:方法失败-所有值均为Null

简单Android SharedReferences实现:方法失败-所有值均为Null,android,string,null,sharedpreferences,Android,String,Null,Sharedpreferences,我试图对源代码中的几个值进行null检查,结果显示它们都返回null。由于我的SharedReferences实现,我应该能够在我的新类中使用这些值,但它似乎不起作用。(我似乎忽略了一些简单的事情。) Startpoint类SharedReferences实现: SharedPreferences prefs=getPreferences(Context.MODE_PRIVATE); SharedPreferences.Editor editor=prefs.edit(); ed

我试图对源代码中的几个值进行null检查,结果显示它们都返回null。由于我的SharedReferences实现,我应该能够在我的新类中使用这些值,但它似乎不起作用。(我似乎忽略了一些简单的事情。)

Startpoint类SharedReferences实现:

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 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();
端点类SharedReferences实现:

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 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——知道为什么吗?由于我实现了SharedReference,我认为它们不应该为null,但它们仍然返回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();

您没有获得SharedReferences,请尝试以下操作:

SharedPreferences prefs = getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE);
其中,
PREFS\u NAME
是您为文件指定的名称

您也不能这样做:

SharedPreferences.Editor editor=prefs.edit();
prefs.getBoolean("new", true);
由于编辑器类没有该方法。。。相反,您应该使用
prefs
变量来获取值

看看你在保存和恢复什么。。。两种情况下唯一的值都是“name”,因此其他值都是false

编辑

例如:

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

你能让我知道我上面的编辑是否正确吗?我得到一个错误,指出NDEF_PREF无法解析为变量,当我尝试使用以下方法对其进行空值检查:if(name==null){Log.d(标记,“breaked Value!Debug!Debug!”);在我尝试通过logcate运行它之前,我得到了“name无法解析为变量”。我难道不能使用:if对这些值进行空值检查吗(name==null){Log.d(TAG,“breaked Value!Debug!Debug!”);在尝试这样做时,我得到了“name无法解析为变量”——这是否意味着我没有正确实现某个东西——或者它应该像这样运行?另外——我是否需要任何类型的commit语句作为结尾?