SharedPreference不会将任何数据保存到我的设备中

时间:2015-02-15 16:26:45

标签: java android sharedpreferences

所以,我试图保存一些小数据,如用户的用户名(记住我的功能)和共享偏好似乎没有保存任何数据到我的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);
}

1 个答案:

答案 0 :(得分:1)

您正尝试在以下共享首页中设置数据:

   SharedPreferences prefs = getSharedPreferences(
                                PREFS_NAME, Context.MODE_PRIVATE);

尝试从以下共享pref获取数据:

SharedPreferences prefs = getSharedPreferences("project", 0);

似乎是2个不同的共享pref

编辑:

由于安全原因,共享pref在设备中不可见,但如果设备已植根,则可以查看共享的pref文件。

要调试和查看共享的pref文件,您可以使用模拟器,其中共享的pref可见,您可以拉动并推送共享的pref文件。