[英]How to disable outside touching to hide DialogPreference
我正在开发自定义DialogPreference。
当用户在对话框外单击时,它被取消,我需要避免这种情况。
我知道Dialog有方法setCanceledOnTouchOutside(boolean cancel)
,这是我需要的,但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)
指定builder.setCancelable(false)
。 大概可以通过这种方式实现欲望行为。
@Override
protected void onPrepareDialogBuilder(Builder builder) {
super.onPrepareDialogBuilder(builder);
builder.setCancelable(false);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.