繁体   English   中英

使用sharedpreferences的密码 - android

[英]using sharedpreferences for password - android

先生,如何在其他类中访问我的sharedpreferences文件? 我希望应用程序的默认密码为1234,然后根据用户的需要进行更改。 我已经使用过这段代码并且它第一次运行,但是当我重新启动应用程序时,它将恢复为旧密码。 提前感谢您的帮助

public class ChangePassword extends Activity {
/** Called when the activity is first created. */
EditText enterPassword, newPassword;
public final String filename = "PasswordFile";
String myPassword;
SharedPreferences myFolder;
public static String dataReturned = "";
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.changepassword);
    Button save = (Button)findViewById(R.id.btnSavePassword);
    enterPassword = (EditText)findViewById(R.id.etCurrentPassword);
    newPassword = (EditText)findViewById(R.id.etNewPassword);
    myFolder = getSharedPreferences(filename, 0);//a folder
    dataReturned = myFolder.getString("passwordKey", "");
    if(dataReturned.equals(""))
    {
        SharedPreferences.Editor editor = myFolder.edit();
        editor.putString("passwordKey", "1234"); //newData is new pass, passwordKey is key
        editor.commit();
    }

    save.setOnClickListener(new OnClickListener()
    {
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            String stringData = enterPassword.getText().toString().trim();
            dataReturned = myFolder.getString("passwordKey", ""); //key/def message
            //if stored password is equal to entered password
            if(dataReturned.equals(stringData))
            {
                String newData = newPassword.getText().toString().trim();
                SharedPreferences.Editor editor = myFolder.edit();
                editor.putString("passwordKey", newData); //newData is new pass, passwordKey is key
                editor.commit();
                dataReturned  = myFolder.getString("passwordKey", "couldn't load data"); //get file from sharedpref
                Toast.makeText(getApplicationContext(),
                        "Password successfully changed",
                        Toast.LENGTH_LONG).show();
                enterPassword.setText("");
                newPassword.setText("");
            }
            else 
            {
                Toast.makeText(getApplicationContext(),
                        "Wrong password!",
                        Toast.LENGTH_LONG).show();
                enterPassword.setText("");
                newPassword.setText("");
            }
        }
    });
}//oncreate()

}

这里是我想在我的其他课程中使用共享偏好中保存的数据的地方

public void dispatch_button_action(View view){
    final EditText password_input = new EditText(this); // create an text input field
    password_input.setHint("Enter Password"); // put a hint in it
    password_input.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD); // change it to password type

    AlertDialog.Builder alertDialog = new Builder(this); // create an alert box
    alertDialog.setTitle("Enter Password"); // set the title
    alertDialog.setView(password_input);  // insert the password text field in the alert box
    alertDialog.setPositiveButton("OK", new DialogInterface.OnClickListener() { // define the 'OK' button
        public void onClick(DialogInterface dialog, int which) {
             String entered_password = password_input.getText().toString();
             String password = ChangePassword.myFolder.getString("passwordKey", "");
             if(!password.trim().equals(""))
             {
                 testPassAndSendSms(password.trim(), entered_password);
             }
             else
             {
                 testPassAndSendSms(my_password, entered_password);
             }

        } 
    });
    alertDialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { // define the 'Cancel' button
        public void onClick(DialogInterface dialog, int which) {
            dialog.cancel();
        } 
    });
    alertDialog.show(); // show the alert box
}//end dispatch_button

目前您没有保存用户在Alertbox中输入的最新密码,因此在Another Activity中将SharedPreferences中的最新密码保存为:

 alertDialog.setPositiveButton("OK", new DialogInterface.OnClickListener() { 
  public void onClick(DialogInterface dialog, int which) {
   String entered_password = password_input.getText().toString();
   SharedPreferences myFolder = You_Current_Activitu.this.getSharedPreferences(filename, 0);
        String  dataReturned = myFolder.getString("passwordKey", "");
        if(dataReturned.equals(""))
        {
            SharedPreferences.Editor editor = myFolder.edit();
            editor.putString("passwordKey", entered_password); 
            editor.commit();
        }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM