Java 我希望我的布尔值在共享首选项中保存为true,但它总是保存为false
我试图将一个布尔值保存到共享首选项中,其值为true,但当我记录它时,我一直看到它返回一个false值。请参阅下面的代码,并记住此代码位于片段中Java 我希望我的布尔值在共享首选项中保存为true,但它总是保存为false,java,android,sharedpreferences,Java,Android,Sharedpreferences,我试图将一个布尔值保存到共享首选项中,其值为true,但当我记录它时,我一直看到它返回一个false值。请参阅下面的代码,并记住此代码位于片段中 SharedPreferences AppPreferences = getActivity().getSharedPreferences("myPrefs", Activity.MODE_PRIVATE); boolean propertyManagerLoggedIn = AppPreferences.getBoolean(PROPE
SharedPreferences AppPreferences = getActivity().getSharedPreferences("myPrefs", Activity.MODE_PRIVATE);
boolean propertyManagerLoggedIn = AppPreferences.getBoolean(PROPERTYMANAGER_LOGGEDIN, false);
if(!propertyManagerLoggedIn)
{
SharedPreferences.Editor editor = AppPreferences.edit();
transitionInterface.showDashboardIcons();
AppPreferences.edit().putBoolean("PROPERTYMANAGER_LOGGEDIN", true);
editor.commit();
//boolean vlaue = prefs.getbooleanflag(context, false);
Log.d("tag",""+propertyManagerLoggedIn);
}
else
{
Log.d("tag",""+propertyManagerLoggedIn);
}
下面是我的AppPreferences类中的相关代码行
public final static String PROPERTYMANAGER_LOGGEDIN = "PROPERTYMANAGER_LOGGEDIN";
public static boolean propertyManagerLoggedn(Context context)
{
TinyDB settings = new TinyDB(context);
return settings.getBoolean(AppPreferences.PROPERTYMANAGER_LOGGEDIN);
}
每次调用
edit()
时,都会向您返回一个新的Editor
。根据文件
为这些首选项创建一个新编辑器,通过该编辑器可以
对首选项和原子提交中数据的修改
这些更改将返回到SharedReferences对象
所以你可以
AppPreferences.edit().putBoolean("PROPERTYMANAGER_LOGGEDIN", true).commit();
或
但是在一个实例上调用
putBoolean
,在另一个实例上调用commit
,可能不会有什么帮助。
基本上,AppPreferences.edit()
将为您提供一个新实例
AppPreferences.edit().putBoolean("PROPERTYMANAGER_LOGGEDIN", true);
这是放置布尔值的另一个实例
使用已创建的同一实例。
您的代码应该如下所示:
SharedPreferences.Editor editor = AppPreferences.edit();
transitionInterface.showDashboardIcons();
editor.putBoolean("PROPERTYMANAGER_LOGGEDIN", true);
editor.commit();
谢谢,让我试试。我还怀疑我在应用程序首选项中声明它的方式是错误的。声明它的正确方法是什么,这样我就可以访问它了
SharedPreferences.Editor editor = AppPreferences.edit();
transitionInterface.showDashboardIcons();
editor.putBoolean("PROPERTYMANAGER_LOGGEDIN", true);
editor.commit();