【发布时间】:2015-05-12 07:57:02
【问题描述】:
我想在处理某些用户的请求时显示一个进度对话框。这是我的代码,我看不出对话框没有出现在屏幕上的任何充分理由。
public void onGoClick(Button button) {
ProgressDialog progressDialog = null;
try {
if (invalid) {
// Show error message
} else {
progressDialog = new ProgressDialog(getActivity());
progressDialog.setIndeterminate(true);
progressDialog.setMessage(getActivity().getResources().getString(R.string.user_wait_message));
progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
progressDialog.show();
// Do processing
}
} catch (Exception ex) {
ex.printStackTrace();
} finally {
progressDialog.dismiss();
}
}
当我将 ProgressDialog 声明语句移动到 try 块中并从 finally 块中删除解除方法时,我能够在屏幕上看到循环对话框,但是当我像上面的代码一样更改它时,什么都没有出现屏幕。处理区域中没有异步调用,这就是为什么我在这里没有发现任何错误。任何帮助表示赞赏,谢谢。
【问题讨论】:
-
是的,好的看起来不错,无效的必须是真的
-
我猜它的一些异常上升了。尝试调试它。
-
@marsje else 块正在执行。
-
我已经调试过了,else块正在执行。
-
附带说明,如果 invalid 为真,您将使用当前方法遇到空指针异常,因为您从未初始化
progressDialog,这意味着您在 finally 块中运行null.dismiss();。
标签: java android user-interface progressdialog