我在API调用上显示了一个进度条,如下所示:
// prepare for a progress bar dialog
progressBar = new ProgressDialog(context);
progressBar.setCancelable(false);
progressBar.setMessage(context.getResources().getString(R.string.please_wait));
progressBar.setProgressStyle(ProgressDialog.STYLE_SPINNER);
但是当我取消或取消上面创建的进度对话时,它没有效果。
progressBar.cancel();
progressBar.dismiss();
以上两个电话都是成功的&失败回调方法:
@Override
public void success(RockAPI.CallResult result) {
progressBar.cancel();
progressBar.dismiss();
....
}
@Override
public void failure(RockAPI.CallResult result) {
progressBar.cancel();
progressBar.dismiss();
......
}
我成功调试了应用程序&失败指向这些代码行被执行但仍然进展对话仍然存在。我检查了所有代码,没有其他地方可以调用此进度条show()
。它的进展对话相同,但没有被取消。
答案 0 :(得分:2)
创建类似的功能,并在需要时调用..
ProgressDialog progressDialog;
public void showPD(String message) {
if (progressDialog == null) {
progressDialog = new ProgressDialog(getContext());
//progressDialog.setProgressNumberFormat(null);
//progressDialog.setProgressPercentFormat(null);
//progressDialog.setIndeterminate(true);
//progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
progressDialog.setMessage(message);
progressDialog.setCancelable(false);
progressDialog.setCanceledOnTouchOutside(false);
progressDialog.show();
}
}
public void hidePD() {
if (progressDialog != null) {
progressDialog.dismiss();
progressDialog = null;
}
}
答案 1 :(得分:0)
您将cancelable设置为false,因此请勿调用progressBar.cancel()。跳过它并直接调用progressBar.dismiss()。它应该工作。如果不是,我们会深入挖掘。
答案 2 :(得分:0)
在setCancelable
中使用true而不是false,它会起作用。
progressBar.setCancelable(true);