我有一个AlertDialog,其中显示一些文本框,editexts和按钮,用于通过Firebase确认电话号码。
如果我尝试确认引发该事件的数字(例如,一个不存在的数字),那么只要AlertDialog在屏幕上,后退按钮就好像突然停止工作。
我的意思是,无论按下后退按钮多少,我都检查了其关联的OnCancelListener是否停止触发。
我还检查了一下,以防万一,可能由于该按钮而触发的事件(如onBackPressed或onKeyDown)均未触发,看来该按钮已被完全禁用,尽管有可能还有另一个事件我没有意识到那会被解雇。
这是onVerficiationFailed的代码,尽管看起来好像没有任何东西可以禁用“后退”按钮,即使以非常遥远的方式也是如此。
CountDownTimer mcd;
AlertDialog dialog1;
EditText input1;
EditText input2;
@Override
public void onVerificationFailed(FirebaseException e) {
mcd.cancel();
final Button button3 = ((AlertDialog) dialog1).getButton(AlertDialog.BUTTON_NEUTRAL);
button3.setEnabled(true);
if (e instanceof FirebaseAuthInvalidCredentialsException) {
Toast.makeText(getApplicationContext(),"Verification failed",Toast.LENGTH_LONG).show();
}
final Button button = ((AlertDialog) dialog1).getButton(AlertDialog.BUTTON_POSITIVE);
button.setEnabled(true);
if (language.equals("English")) {
button.setText("Send/Resend code");
} else {
button.setText("Envía/Reenvía código");
}
input.setEnabled(true);// EditText from the dialog
input2.setEnabled(true); // EditText from the dialog
}
有什么可能的想法吗?