SharedPreference - 清除和读取

时间:2014-09-02 23:23:40

标签: android android-intent sharedpreferences

我在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 :在底部回答,但对于正在寻找答案的其他人,我接受了答案

3 个答案:

答案 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值。如果已设置,则可以将用户重定向到主屏幕,而无需再次登录。