我正在做一些 android 编码,完全是新手,我想知道我是否做得对。基本上我的主要活动有两个编辑文本,您可以在其中输入用户名和密码。(我将用户名和密码存储在文本文件中,这是用于学校/学习的,我知道这不是存储它们的方式)
在我的 java 代码中,我使用 onClick() 检查密码和用户名是否在文本文件中。如果不是,我想显示一个警告对话框,提示用户名/密码不正确,再试一次。我只是对我应该如何使用 bundle savedInstanceState 感到有点困惑。让我先给你看一下 java 代码。
public class MainActivity extends Activity {
private Triage triage = new Triage();
File passwdFile = new File (this.getApplicationContext().getFilesDir(), "passwords.txt");
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = (Button) findViewById(R.id.button1);
}
public void onClick(View view){
if (checkUsername(this.triage, view)){
startActivity(new Intent(MainActivity.this, MainActivity2.class));
}
else{
onCreateDialog(savedInstanceState).show();
}
}
public boolean checkUsername(Triage t, View v){
EditText username = (EditText) v.findViewById(R.id.usernameText);
EditText passwordEntered = (EditText) v.findViewById(R.id.editText2);
HashMap<String, Nurse> nurseMap = (HashMap<String, Nurse>)triage.getNurseMap();
if ((nurseMap.containsKey(username)) && nurseMap.get(username).getPassword().equals(passwordEntered)){
return true;
}
else {
return false;
}
}
public Dialog onCreateDialog(Bundle savedInstanceState){
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setPositiveButton("OK", new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog, int id){
dialog.dismiss();}
});
builder.setMessage("Try Again")
.setTitle("Wrong username/password");
AlertDialog dialog = builder.create();
return dialog;
}
}
我想我调用 onCreateDialog(savedInstanceState).show() 错误,所以我问我如何将 savedInstanceState 作为参数传递?它是否正确?我知道使用了savedInstanceState,因此您可以在屏幕更改时重新创建您的活动,并且我假设警报对话框是此功能的扩展?