所以,我试图保存一些小数据,如用户的用户名(记住我的功能)和共享偏好似乎没有保存任何数据到我的Android设备。我想知道为什么,我的代码没有任何问题......
final Button btnLogin = (Button) findViewById(R.id.btn_Login);
btnLogin.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
tvName = (EditText) findViewById(R.id.edit_mName);
tvPassword = (EditText) findViewById(R.id.edit_mPassword);
try {
if (cbRme.isChecked()) {
SharedPreferences prefs = getSharedPreferences(
PREFS_NAME, Context.MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
editor.clear();
editor.putString("keyusername", tvName.getText()
.toString());
editor.putString("keypassword", tvPassword
.getText().toString());
editor.putBoolean("keycheckbox", true);
editor.commit();
} else {
SharedPreferences prefs = getSharedPreferences(
PREFS_NAME, Context.MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
editor.clear();
editor.remove("keyusername");
editor.remove("keypassword");
editor.remove("keycheckbox");
editor.commit();
}
} catch (Exception e) {
Toast.makeText(getBaseContext(), e.getMessage(),
Toast.LENGTH_LONG).show();
}
public void onResume() {
SharedPreferences prefs = getSharedPreferences("project", 0);
username = prefs.getString("keyusername", DEFAULT);
password = prefs.getString("keypassword", DEFAULT);
checkbox = prefs.getBoolean("keycheckbox", false);
if ((username.equals(DEFAULT)) || checkbox == false) {
Toast.makeText(getBaseContext(), "No data found", Toast.LENGTH_LONG)
.show();
} else {
Toast.makeText(getBaseContext(), "Data is found.",
Toast.LENGTH_LONG).show();
setUsername();
setCheckedBox();
}
super.onResume();
}
private void setUsername() {
EditText tvName = (EditText) findViewById(R.id.edit_mName);
tvName.setText(username);
}
private void setCheckedBox() {
cbRme = (CheckBox) findViewById(R.id.cbRememberMe);
cbRme.setChecked(checkbox);
}
答案 0 :(得分:1)
您正尝试在以下共享首页中设置数据:
SharedPreferences prefs = getSharedPreferences(
PREFS_NAME, Context.MODE_PRIVATE);
尝试从以下共享pref获取数据:
SharedPreferences prefs = getSharedPreferences("project", 0);
似乎是2个不同的共享pref
编辑:
由于安全原因,共享pref在设备中不可见,但如果设备已植根,则可以查看共享的pref文件。
要调试和查看共享的pref文件,您可以使用模拟器,其中共享的pref可见,您可以拉动并推送共享的pref文件。