我正在开发一个自定义 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);
}
}