【问题标题】:Remember me function between sessions在会话之间记住我的功能
【发布时间】:2015-05-08 00:23:10
【问题描述】:

当我点击“记住我”复选框时,它会根据代码将用户名和密码保存为sharepreferences。但是,当我退出应用程序并返回时,用户名和密码就会消失。

如何在会话之间保存用户名和密码?

// Remember me function
        CheckBox cbRemember = (CheckBox) findViewById(R.id.chkRememberPassword);
        if (cbRemember.isChecked()) {

            // save username & password
            SharedPreferences mySharedPreferences = getSharedPreferences(
                    "PREFS", Activity.MODE_PRIVATE);
            SharedPreferences.Editor editor = mySharedPreferences
                    .edit();
            editor.putString("UserName",
                    String.valueOf(txtLogin.getText().toString()));
            editor.putString("Password",
                    String.valueOf(txtPassword.getText().toString()));
            editor.commit();

        }

【问题讨论】:

  • 您能发布一下您是如何从共享偏好中获取数据的吗?
  • 我只有这个共享偏好可以保存。但我不知道如何找回它。因为当我按下 android 手机中的后退按钮时,它退出了应用程序。当我回到应用程序时,用户名和密码消失了。
  • 如果不从共享偏好中检索数据,你怎么能说它不是共享偏好?
  • 要检索的代码是什么?抱歉,我是 android 新手。
  • 看看 Paresh Mayani 的答案,它描述了如何检索共享首选项,现在当您回到您的应用程序时,只需从共享首选项中获取数据并显示在您的视图中..

标签: android session sharedpreferences


【解决方案1】:

与您将用户名和密码字符串放在共享首选项中一样,您可以通过以下操作检索相同的内容:

SharedPreferences settings = getSharedPreferences("PREFS",0);
settings.getString("UserName", "");  
settings.getString("user", ""); 

但我认为为了实现记住我的功能,只要登录成功就放一个布尔标志:

 editor.putBoolean("login",true);

并在下次重新启动应用时检索:

settings.getBoolean("login", false);  

【讨论】:

    【解决方案2】:

    当您退出应用程序并返回时,将调用onResume() 方法。这是您应该放置 Paresh Mayani 的代码以检索用户名和密码的地方。查看here 以了解 Android 中 Activity 的生命周期。

    【讨论】:

      【解决方案3】:

      我认为问题在于 Activity.MODE_PRIVATE 标志使用 getSharedPreferences("PREFS", MODE_WORLD_WRITEABLE) 标志。

      【讨论】:

      • 不,没有必要,如果您想将共享偏好设置为仅对您的应用程序私有,则使用 MODE_PRIVATE。
      • 那么结论是什么?我应该更改哪个编码?
      猜你喜欢
      • 2015-06-20
      • 2011-01-13
      • 2012-12-04
      • 2011-09-13
      • 1970-01-01
      • 1970-01-01
      • 2010-10-25
      • 2012-08-08
      • 1970-01-01
      相关资源
      最近更新 更多