我已经创建了一个工作正常的AlertDialog。它正在消失,如果我按下:
1)退出键盘按钮或
2)使用鼠标的后退按钮
为了使它即使在上述条件下也保持关注,我在构建时添加了‘.setCancelable(False)’语句。但是,我仍然看到对话消失了。问题出在哪里?请帮帮忙。
添加的代码:
return new AlertDialog.Builder(getActivity())
.setIcon(R.drawable.alert_dialog_icon)
.setTitle(title)
.setCancelable(false)
.setPositiveButton(R.string.alert_dialog_ok,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
((FragmentAlertDialog)getActivity()).doPositiveClick();
}
}
)
.setNegativeButton(R.string.alert_dialog_cancel,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
((FragmentAlertDialog)getActivity()).doNegativeClick();
}
}
)
.create();
环境:XP专业版上的Android 4.0。
9条答案
按热度按时间dwthyt8l1#
this是您的完整代码吗?那么请这样更改您设置
setCancelable(false)
的代码q0qdq0h22#
您的对话框设置为no-Cancelable,但您的主机片段仍可取消。使用
setCancelable(false)
设置您的片段。xdnvmnnf3#
setCanceledOnTouchOutside(boolean)
设置当触摸窗口边界之外时是否取消此对话框。如果设置为TRUE,则该对话框设置为可取消(如果尚未设置)。
lnlaulya4#
另一个实用示例:
第一步
创建类:
第二步
将方法添加到
Activity
:第三步
需要显示对话框时调用
showDialog()
lh80um4z5#
实现“setCancelable”的最简单方法是在活动中调用对话框时实现相同的方法;这样,而不是直接在DIALOG类中实现。
nlejzf6q6#
根据您的
AlertDialog
类型,您可以:或
raogr8fs7#
在对话框片段中
二手:-
dialog.setCanceledOnTouchOutside(false)
jjjwad0x8#
在Kotlin中,用于使对话不可驳回
wkyowqbh9#