【发布时间】:2017-02-11 04:55:26
【问题描述】:
我使用ProgressDialog 来显示一些下载状态。我添加了两个名为 Cancel 和 Paused 的按钮。
当我点击任何按钮时,ProgressDialog 会被关闭,但我需要 ProgressDialog 不要被自动关闭,因为我必须处理一些其他事情。
我的代码是:
ProgressDialog progressDialog;
progressDialog = new ProgressDialog(this);
progressDialog.setTitle("Please Wait..");
progressDialog.setMessage("Downloading");
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
progressDialog.setMax(100);
progressDialog.setButton(DialogInterface.BUTTON_NEGATIVE, "Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Toast.makeText(MainActivity.this, "Canceled", Toast.LENGTH_SHORT).show();
}
});
progressDialog.setButton(DialogInterface.BUTTON_POSITIVE, "Paused", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
// DownloadManager.getInstance().pause(fileUrl);
Toast.makeText(MainActivity.this, "Paused", Toast.LENGTH_SHORT).show();\
}
});
progressDialog.show();
问题出在哪里?
[注意:当用户在progressDialog 之外单击但当用户单击任何按钮时,我不想避免关闭]
【问题讨论】:
-
这是默认行为。您需要为此进行自定义布局
-
使用
use setCancelable(false)将阻止用户关闭在屏幕外单击的progressDialog。 -
setCancelable(false)没有解决他的问题,因为他想在单击属于对话框的按钮时阻止对话框关闭 -
ProgressDialog 扩展了 AlertDialog,其预期行为是在单击后立即关闭。我认为最好的方法是创建自己的自定义进度对话框扩展 DialogFragment
标签: android progressdialog dismiss