我在应用启动时有一个登录活动,我需要检查以前是否使用过此应用,然后我需要输入最近输入的用户名和密码。
为此我使用了共享首选项并使用如下所示:
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 {
}
}
答案 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);