2012-12-05 37 views
1

先生,如果我更改为其他活动,我如何保存在更改密码活动中所做的更改。起初,我试图只使用一个变量来保存值,但是如果我返回到其他活动,所做的所有更改将恢复正常。我试图使用数组列表,但它是一样的。你能教我其他创建更改密码选项的方法吗?感谢提前帮助。创建密码选项 - android

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 

}

+0

我不明白你的问题。请重新格式化它。 –

回答

1

必须使用的3种方式是Android平台提供了一个保存数据:

  1. SharedPreferences
  2. SQLiteDatabase
  3. 文件

如果你只是w蚂蚁保存并重新恢复。

但是,如果你只是想保存你的活动的实例,那么你可以重写适当的方法。

+0

我想我只需要使用sharedpreferences。谢谢。 –