Android 如何禁用外部触摸以隐藏对话框首选项
我正在开发一个自定义对话框 当用户在对话框外单击时,它将被取消,我需要避免这种情况 我知道Dialog有方法Android 如何禁用外部触摸以隐藏对话框首选项,android,dialog-preference,Android,Dialog Preference,我正在开发一个自定义对话框 当用户在对话框外单击时,它将被取消,我需要避免这种情况 我知道Dialog有方法setcanceledontouchout(布尔取消)这正是我所需要的,但DialogPreference没有 在onBindDialogView中,我尝试: getDialog().setCanceledOnTouchOutside(true); 但是getDialog()返回null 我该怎么办?有人能帮我吗 这是我的班级: public class UpdatePreference
setcanceledontouchout(布尔取消)
这正是我所需要的,但DialogPreference没有
在onBindDialogView
中,我尝试:
getDialog().setCanceledOnTouchOutside(true);
但是getDialog()
返回null
我该怎么办?有人能帮我吗
这是我的班级:
public class UpdatePreference extends DialogPreference implements View.OnClickListener{
public UpdatePreference(Context context, AttributeSet attrs) {
super(context, attrs);
setPersistent(false);
setDialogLayoutResource(R.layout.update_dialog_layout);
setPositiveButtonText("");
setNegativeButtonText("");
}
@Override
protected void onBindDialogView(View view) {
super.onBindDialogView(view);
//init my components
}
@Override
protected void onDialogClosed(boolean positiveResult) {
super.onDialogClosed(positiveResult);
}
}
在显示对话框之前,您可以访问
AlerDialog.Builder
。您可以在那里指定builder.setCancelable(false)
。也许通过这种方式你可以实现欲望行为
@Override
protected void onPrepareDialogBuilder(Builder builder) {
super.onPrepareDialogBuilder(builder);
builder.setCancelable(false);
}
这太棒了,这就是我一直在寻找的!非常感谢!:)回答得很好。