我在活动中使用showDialog
anddismissDialog
来显示和销毁我的对话框。还有一种方法可以在当前显示的对话框上发出单击命令而不保留引用对话框的变量?
例如,我想通过代码按下对话框的“确定”/肯定按钮。
我在活动中使用showDialog
anddismissDialog
来显示和销毁我的对话框。还有一种方法可以在当前显示的对话框上发出单击命令而不保留引用对话框的变量?
例如,我想通过代码按下对话框的“确定”/肯定按钮。
我没有测试过这段代码,但它应该可以工作:
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();
}
});
并onPositiveButtonClicked()
在您的活动中实施。您可以调用onPositiveButtonClicked()
和,而不是以编程方式单击 OK 按钮dismissDialog(id)
。如果您需要处理多个对话框,onPositiveButtonClicked
请使用id
参数。
我想通过代码按下对话框的“确定”/肯定按钮
是的,您可以通过获取POSITIVE
BUTTON 的实例然后调用performClick()
它来做到这一点。试试看:
Button okButton = alertDialog.getButton(DialogInterface.BUTTON_POSITIVE);
okButton.performClick(); //<<< click Button using code
如果您使用的是 Builder,它没有 getButton() 函数。你可以试试这个
AlertDialog.Builder alBuilder = new AlertDialog.Builder(this);
alBuilder.setMessage("Test Message")
.setPositiveButton("Yes", null)
.setNegativeButton("No",null)
alBuilder.setCancelable(false);
AlertDialog alertDialog = alBuilder.show();
然后您可以通过以下代码访问该按钮
alertDialog.getButton(DialogInterface.BUTTON_POSITIVE).performClick();
试试这个:-
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();