簡體   English   中英

如何禁用外部觸摸以隱藏DialogPreference

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM