[英]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.