如何通过代码点击AlertDialog上的“确定”?

我在活动中使用showDialogdismissDialog来显示和销毁我的对话框。 还有一种方法可以在当前显示的对话框上发出点击命令,而不需要保留一个引用对话框的variables。

例如,我想通过代码按下对话框的“确定”/正面button。

Solutions Collecting From Web of "如何通过代码点击AlertDialog上的“确定”?"

我没有testing这个代码,但它应该工作:

 AlertDialog dialog = ... dialog.getButton(DialogInterface.BUTTON_POSITIVE).performClick(); 

或者,如果您不想保留对该对话框的引用,而是控制其设置,则可以将点击代码提取到另一个方法中:

 AlertDialog.Builder builder = ... builder.setPositiveButton("OK", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { onPositiveButtonClicked(); } }); 

并在Activity中实现onPositiveButtonClicked() 。 而不是编程方式点击OKbutton,你可以调用onPositiveButtonClicked()dismissDialog(id) 。 如果您需要处理多个对话框,请使用onPositiveButtonClicked参数。

我想通过代码按下对话框的“确定”/正面button

是的,您可以通过获取POSITIVE BUTTON实例,然后调用performClick() 。 试试看:

 Button okButton = alertDialog.getButton(DialogInterface.BUTTON_POSITIVE); okButton.performClick(); //<<< click Button using code 

尝试这个:-

 AlertDialog.Builder alBuilder = new AlertDialog.Builder(this); alBuilder .setMessage("Do you wamt to exit?") .setPositiveButton("Yes", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.cancel(); // Write your code here for Yes } }) .setNegativeButton("No", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.cancel(); // Write your code here for No } }); alBuilder.setCancelable(false); alBuilder.show();