我在从一个活动的共享偏好中检索数据到另一个活动时遇到问题

时间:2012-05-16 16:47:43

标签: java android sharedpreferences

public class LoginActivity extends Activity{

final String defaultPassword = "123456";
Button login, cancel;
EditText input;

@Override
public void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.security);

    //SharedPreferences from other Activity
    final String LOGIN_PASSWORD = "Login_Password";
    SharedPreferences loginPassword = getSharedPreferences(LOGIN_PASSWORD, 0);
    final String storedPass = loginPassword.getString("loginPassword", "");

    input = (EditText) findViewById(R.id.password);

    cancel = (Button) findViewById(R.id.cancel);
    cancel.setOnClickListener(new View.OnClickListener() {

        public void onClick(View view) {                
            finish();
        }
    });

    login = (Button) findViewById(R.id.login);
    login.setOnClickListener(new View.OnClickListener() {

        public void onClick(View view) {

            String inputPass = input.getText().toString();

            if (!inputPass.equals("")){

                if (storedPass.equals("")){

                    if (inputPass.equals(defaultPassword)){
                        Toast.makeText(LoginActivity.this, "Success", Toast.LENGTH_SHORT).show();
                        Intent intent = new Intent(LoginActivity.this, ActivateActivity.class);
                        startActivity(intent);
                    }
                    else{
                        Toast.makeText(LoginActivity.this, "Failed", Toast.LENGTH_SHORT).show();
                        input.setText("");
                    }
                }
                else{

                    if (inputPass.equals(storedPass)){
                        Toast.makeText(LoginActivity.this, "Success", Toast.LENGTH_SHORT).show();
                        Intent intent = new Intent(LoginActivity.this, ActivateActivity.class);
                        startActivity(intent);
                    }
                    else{
                        Toast.makeText(LoginActivity.this, "Not matched", Toast.LENGTH_SHORT).show();
                        input.setText("");
                    }
                }   
            }
            else{
                Toast.makeText(LoginActivity.this, "Nothing", Toast.LENGTH_SHORT).show();
                input.setText("");
            }
        }
    });
}

我正在设计一个用于访问应用程序的登录页面,最初在用户第一次使用该应用程序时,未设置密码,因此在用户设置密码后,默认密码“123456”用于访问应用程序,默认密码不能用于访问应用程序...所以现在我必须检索存储在另一个活动共享首选项中的用户设置密码。因此,下次用户访问应用程序时,我可以将用户输入与存储的密码进行比较,但我该如何实现?我的编码有问题吗?

1 个答案:

答案 0 :(得分:0)

使用getSharedPreferences(LOGIN_PASSWORD, 0)时,请确保LOGIN_PASSWORD在两个活动中的值相同。否则,您将打开两个不同的首选项。