在下面的代码中,我尝试关闭AlertDialog
框,但无济于事。但是,如果我删除compareKeys()
功能,则解雇将起作用。那么在调用compareKeys()
函数后如何解除它?
public void promptAdministratorPassword() {
AlertDialog.Builder alert = new AlertDialog.Builder(this);
alert.setTitle("Alert!");
alert.setMessage("Please enter your password: ");
// Set an EditText view to get user input
final EditText input = new EditText(this);
alert.setView(input);
alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
password = input.getText().toString();
if (password.equals("password")) {
try {
compareKeys();
} catch (IOException | NoSuchAlgorithmException | InvalidKeySpecException e) {
e.printStackTrace();
}
}
dialog.dismiss();
}
});
alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
// Canceled.
}
});
alert.show();
}
答案 0 :(得分:0)
在dialog.dismiss()
之前致电password = input.getText().toString()
,并在dialog.dismiss()
setNegativeButton
内添加OnClickListener
。