gpt4 book ai didi

java - Android 自定义进度对话框 - setCancelable()

转载 作者:行者123 更新时间:2023-11-29 19:08:10 27 4
gpt4 key购买 nike

我创建了一个自定义的进度对话。重写 setCancelable()setCanceledOnTouchOutside() 等属性对我不起作用。

public class CustomProgressDialogue extends ProgressDialog {

private final Context context;

public CustomProgressDialogue(Context context) {
super(context);
this.context = context;
getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
}

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.progress_view);

}

// Didn't worked
@Override
public void setCancelable(boolean flag) {
super.setCancelable(false);
}
// Didn't worked
@Override
public void setCanceledOnTouchOutside(boolean cancel) {
super.setCanceledOnTouchOutside(false);
}
}

但在实例创建后同时应用相同的属性。

// Worked
progressDialogue = new CustomProgressDialogue(getContext());
progressDialogue.setCancelable(false);
progressDialogue.setCanceledOnTouchOutside(false);

有人能解释一下吗?

最佳答案

不是覆盖可取消的方法,而是创建一个像这样的静态方法,然后将所需的选项传递给它

下面是 ProgressDialog 类是如何做到这一点的:

 public static ProgressDialog show(Context context, CharSequence title,
CharSequence message, boolean indeterminate,
boolean cancelable, OnCancelListener cancelListener) {
ProgressDialog dialog = new ProgressDialog(context);
dialog.setTitle(title);
dialog.setMessage(message);
dialog.setIndeterminate(indeterminate);
dialog.setCancelable(cancelable);
dialog.setOnCancelListener(cancelListener);
dialog.show();
return dialog;
}

关于java - Android 自定义进度对话框 - setCancelable(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46418532/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com