在活动重启时检索用户的详细信息

时间:2014-01-27 18:46:13

标签: android login sharedpreferences

我在应用启动时有一个登录活动,我需要检查以前是否使用过此应用,然后我需要输入最近输入的用户名和密码。

为此我使用了共享首选项并使用如下所示:

b.setOnClickListener(new OnClickListener() {
     public void onClick(View v) {

       username= usernameET.getText().toString();
       password= passwordET.getText().toString();

       SharedPreferences data = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
       data.edit().putString("username", username).commit();
       data.edit().putString("password", password).commit();
    }
});

现在我在app restart上获得这些值,如下所示:

public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.login);
       SharedPreferences data = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
       String storedUsername = data.getString("username", "");
       String storedPassword = data.getString("password", "");
      if (storedUsername != null && storedPassword != null) {
          usernameET.setText(storedUsername);
          passwordET.setText(storedPassword);
        } else {

        }
}

2 个答案:

答案 0 :(得分:1)

编码员,你的问题是什么?这不行? 请告诉我们发生了什么。

使用SharedPreference的实现将是我的建议,它不起作用吗?

我在这里做了一个非常简单的实现,它照常工作......

on onCreate:

SharedPreferences data = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
String storedUsername = data.getString("username", "");
String storedPassword = data.getString("password", "");
Toast.makeText(this, "saved Strings, user = " + storedUsername + "  pass = " + storedPassword, Toast.LENGTH_LONG).show();

点击ImageButton

@Override
public void onClick(View v) {
SharedPreferences data = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
data.edit().putString("username", "carlos").commit();
data.edit().putString("password", "password").commit();
}

听起来您没有在SharedPreferences上设置内容。你能确定一下这个动作吗?

答案 1 :(得分:0)

没有真正看到问题但是......

data.getString将返回默认值(如果未设置),您将其设置为空字符串(“”)。要么改变你的if:

if (!storedUsername.equals("") && !storedPassword.equals(""))

或将您的默认值更改为null

String storedUsername = data.getString("username", null);
String storedPassword = data.getString("password", null);