我在Activity中使用showDialog
和dismissDialog
来显示和销毁我的对话框。是否还有一种方法可以在当前显示的对话框上发出点击命令,而无需保留引用对话框的变量?
例如,我想通过代码按下对话框中的“确定”/正面按钮。
我在Activity中使用showDialog
和dismissDialog
来显示和销毁我的对话框。是否还有一种方法可以在当前显示的对话框上发出点击命令,而无需保留引用对话框的变量?
例如,我想通过代码按下对话框中的“确定”/正面按钮。
我没有测试过这段代码,但它应该可以工作:
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()
。不要通过编程方式单击“确定”按钮,而是可以调用onPositiveButtonClicked()
和dismissDialog(id)
。如果您需要处理多个对话框,请使onPositiveButtonClicked
接受一个id
参数。
getButton
方法。有没有一种方法可以在不保留实际对话框引用的情况下点击“确定”按钮? - ArciAlertDialog
,但我不喜欢保留引用 AlertDialog
的变量。如果我有对话框的ID,有没有一种方法可以使用给定的 Activity
访问对话框? - ArciperformClick()
方法。请尝试以下代码:Button okButton = alertDialog.getButton(DialogInterface.BUTTON_POSITIVE);
okButton.performClick(); //<<< click Button using code
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();
activity.getActiveDialog(DIALOG_ID).getButton(...).performClick()
的东西。就像 activity.dismissDialog(DIALOG_ID)
一样,您可以仅使用 DIALOG_ID 关闭对话框。 - Arci
Builder
,并且我正在Activity
中重写onCreateDialog
来设置我的对话框。 - Arci