android - 创建密码选项 - android

标签 android passwords

先生,如果我更改为另一个 Activity ,我该如何保存在更改密码 Activity 中所做的更改。起初,我试图只使用一个变量来保存值,但如果我返回到其他 Activity ,所做的所有更改都会恢复正常。我试过使用 arraylist 但它是一样的。你能教我其他创建更改密码选项的方法吗?提前感谢您的帮助。

public class ChangePassword extends Activity {
/** Called when the activity is first created. */
EditText enterPassword, enterNewPassword;
String defaultPassword = "1234";
ArrayList<String> newPasswordArray = new ArrayList<String>();
ArrayList<String> currentPasswordArray = new ArrayList<String>();
String newPassword;
String currentPassword;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.changepassword);
    Button save = (Button)findViewById(R.id.btnSaveSettings);
    enterPassword = (EditText)findViewById(R.id.etEnterPassword);
    enterNewPassword = (EditText)findViewById(R.id.etNewPassword);
    currentPasswordArray.add("1234");
    for(String s: newPasswordArray)
    {
        newPassword = s;
    }
    for(String s: currentPasswordArray)
    {
        currentPassword = s;
    }
    save.setOnClickListener(new OnClickListener()
    {
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            try
            {
                //get string from arraylist
                for(String s: newPasswordArray)
                {
                    newPassword = s;
                }
                for(String s: currentPasswordArray)
                {
                    currentPassword = s;
                }

                //test password
                if(enterPassword.getText().toString().equals(currentPassword))
                {
                    if(enterNewPassword != null)
                    {
                        String newPass = setNewPassword(enterNewPassword.getText().toString());
                        setCurrentPassword(newPass);
                        Toast.makeText(getApplicationContext(), "Save Success", Toast.LENGTH_LONG).show();
                    }
                    else
                    {
                        Toast.makeText(getApplicationContext(), "Please fill up all fields.", Toast.LENGTH_LONG).show();
                    }
                }
                else
                {
                    Toast.makeText(getApplicationContext(), "Current password, unmatched.", Toast.LENGTH_LONG).show();
                }

            }
            catch(Exception e)
            {
                e.printStackTrace();
                Toast.makeText(getApplicationContext(), "Save failed", Toast.LENGTH_LONG).show();
            }
        }
    });
}//oncreate()

public String setNewPassword(String pass)
{
    String returnPass = "";
    newPasswordArray.clear();
    newPasswordArray.add(pass);
    for(String s : newPasswordArray)
    {
        returnPass = s;
    }
    return returnPass;
}//setNewPassword()

public String getPassword()
{
    return newPassword;
}//getPassword
public void setCurrentPassword(String newpass)
{
    currentPasswordArray.clear();
    currentPasswordArray.add(newpass);
}//setCurrentPassword

最佳答案

您必须使用 Android 平台提供的 3 种方式之一来保存您的数据:

  1. 共享首选项
  2. SQLite数据库
  3. 文件

如果您只想保存并再次恢复。

但是如果您只想保存您的 Activity 实例,那么您可以覆盖适当的方法。

关于android - 创建密码选项 - android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13734423/

相关文章:

带有字体的 Android Canvas 旋转文本未正确保存在 SD 卡上

java - 当我单击并选择微调项目时,光标将自动进入空白编辑文本?

language-agnostic - 硬编码的密码应该加盐/散列吗?

java - 如何使用java中的键获取Json值?

android - 在闹钟管理器 Android 中设置时间 - 立即触发闹钟

android - 错误 :(9, 0) 找不到参数的方法 compile() [io.reactivex :rxandroid:1. 2.1]

javascript - Angular 中的确认密码错误消息

python - 将用户导入到 USER 模型时 Django 中的密码加密

shell - 存储 shell 脚本密码的最佳方法是什么?

iPhone:创建密码保护 SQLite 数据库