我在SharedPreference中保存了一些数据。单击按钮后,用户将被注销,并通过调用pref.clear()ad pref.commit()清除sharedPreference。当用户尝试重新登录时,编辑器将被调用commit(),但它不会保存新值。清除完成后,为什么共享偏好未保存的任何建议?
清算部分:
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor sa = prefs.edit();
sa.clear();
sa.commit();
重新添加部分:
editor.putString("bucket", bucket);
editor.putString("profileid", profileid);
editor.putString("username", user);
editor.putString("password", pass);
editor.commit();
CLOSED :在底部回答,但对于正在寻找答案的其他人,我接受了答案
答案 0 :(得分:0)
你是如何初始化编辑器的(我认为是SharedPreferences.Editor)。我使用以下内容来获得编辑器。
SharedPreferences settings = getActivity().getSharedPreferences("a_string", Activity.MODE_PRIVATE);
SharedPreferences.Editor editor = settings.edit();
我这样做是为了清除和保存我的数据。
如果这种剂量无效,请发布更多信息。答案 1 :(得分:0)
其实是我的错,在我启动我的偏好时有一个错字。对不起人!
答案 2 :(得分:0)
让我向您展示一个如何添加/读取/删除SharedPeferences
数据的工作示例。在Activity
中添加一些数据到SharedPreferences
SharedPreferences prefs = getApplicationContext().getSharedPreferences("yourPrefName",MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
editor.putString("bucket", bucket);
editor.putString("profileid", profileid);
editor.putString("username", user);
editor.putString("password", pass);
editor.commit();
当用户成功登录时,您可能希望执行上述操作。现在当用户退出时,在onClickListener
内注销Button
SharedPreferences settings = getApplicationContext().getSharedPreferences("yourPrefName",MODE_PRIVATE);
SharedPreferences.Editor editor = settings.edit();
editor.clear();
editor.commit();
因此,在您的Activity
代码中,您应该检查是否已设置SharedPreferences
值。如果已设置,则可以将用户重定向到主屏幕,而无需再次登录。