我创建了一个Preference Utils类,用于存储,获取和更新应用程序的Shared首选项的值。
PreferenceUtils:
private static final String USER_PREFS_NAME = "MySharedPreference";
private static final String PREF_IS_PERM_READ = "is_PERM_READ";
public static void setPermissionScreenAccepted(Context context, boolean isRead)
{
SharedPreferences.Editor editor = context.getSharedPreferences(USER_PREFS_NAME,Context.MODE_PRIVATE).edit();
editor.putBoolean(PREF_IS_PERM_READ, isRead);
editor.apply();
}
public static boolean isPermissionScreenAccepted(Context context)
{
SharedPreferences sp = context.getSharedPreferences(USER_PREFS_NAME, Context.MODE_PRIVATE);
return sp.getBoolean(PREF_IS_PERM_READ, false);
}
我创建了一个活动,其中详细介绍了用户在继续进行主要活动之前必须接受的条款。 现在,当用户登录时,我检查他是否已经接受条款和条件,如果是,则直接将他转到主要活动,否则,将其发送到条款和条件活动。
但是,即使用户已经接受了条款和条件,在调用isPermissionAccepted方法时,它始终会返回false。
在“接受”按钮上的“条款和条件”活动中,单击“我称之为”:
PreferenceUtils.setPermissionScreenAccepted(TermsandConditions.this, true);
在登录活动中:
boolean perm_screen_accepted;
perm_screen_accepted = PreferenceUtils.isPermissionScreenAccepted(LoginActivity.this);
System.out.println("Value in shared preference:" +perm_screen_accepted);
我在登录活动中获得的值始终为false。 我正在使用相同的PreferenceUtils类维护其他状态,例如用户是否已经登录,存储用户数据和其他设置,它工作正常。 但这不起作用,有人可以指出我做错了吗?
谢谢。