在Android应用程序中设置和存储密码

时间:2013-10-19 00:29:22

标签: android passwords sharedpreferences

我已尝试为我的应用设置和存储密码,但它根本不起作用。密码应该首次设置然后返回主页,然后当用户再次打开密码时,应该存储密码但不知何故它没有存储它。

PreferenceManager.getDefaultSharedPreferences(this);
    SharedPreferences passfile = getSharedPreferences("ans",0);
    String pass = passfile.getString("ans", null);

    check.setOnClickListener(new OnClickListener () {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub

            String answer1 = answer.getText().toString();


            //Check that user typed in an answer
            if(answer1.length()<8){
                Toast.makeText(CheckPwActivity.this, "Answer must be 8 characters long", Toast.LENGTH_SHORT).show();
                answer.setText("");
                answer.requestFocus();
                return;
            }
            answer.getEditableText().toString();
            //check if the answer is valid
            if (answer1.equals("ans")) {
                Intent intent2 = new Intent(CheckPwActivity.this,MainActivity.class);
                startActivity(intent2);


        }else{ 
            return;

        }


    }});



    }
public void setPassword(String key, String value) {
    SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
    SharedPreferences.Editor editor = preferences.edit();
    Editor preferenceEditor = context.getSharedPreferences("password", 8).edit();
    preferenceEditor.putString(key, value);
    preferenceEditor.commit();
}

public static String getPassword(String filename) {
    return context.getSharedPreferences("password", 2).getString(filename,"");
}

1 个答案:

答案 0 :(得分:0)

您使用的共享偏好设置错误,在您设置的密码中您会获得共享首选项,但之后您会再次获得它但在不同的上下文中

这就是您使用共享偏好所需的全部内容

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = preferences.edit();

然后当你想要设置它时,你使用你刚刚得到的编辑器

editor.putString(key,pass).commit;

然后从共享偏好中获取它

preferences.getString(key,defaultString);
相关问题