3

我想在 http 连接请求时显示 ProgressDialog。

有请求方法。

protected Result request(String urlStr, String postData) {
    ProgressDialog dialog = ProgressDialog.show(activity, "", "Loading...",true);
    Result result = new Result();
    String message = "";
    try {
        message = HttpRequest.postURL(urlStr, postData);
        result = new Result(message);
    } catch (Exception e) {
        Log.e(TAG,"Failed to request data from " + urlStr + "\n" + e.getMessage());
    }
    dialog.dismiss();
    return result;
}

但是当这个方法运行时。ProgressDialog 未显示。如何解决这个问题呢?

4

3 回答 3

2

你需要打电话dialog.show()

启动对话框并将其显示在屏幕上。窗口放置在应用层并且是不透明的。请注意,您不应在显示对话框时重写此方法进行初始化,而应在onStart().

另外,我建议你在AsyncTask课堂上这样做' doInBackground()
在 中onPreExecute(),显示ProgressDialog并在onPostExecute()关闭它。

于 2013-08-12T01:19:41.757 回答
0
protected Result request(String urlStr, String postData) {
    ProgressDialog dialog = ProgressDialog.show(activity, "", "Loading...",true);
    Result result = new Result();
    String message = "";
    try {
        message = HttpRequest.postURL(urlStr, postData);
        result = new Result(message);
    } catch (Exception e) {
        Log.e(TAG,"Failed to request data from " + urlStr + "\n" + e.getMessage());
    }
    dialog.show();
    return result;
}

不要忘记调用 dialog.dismiss(); 带按钮

于 2013-08-12T01:44:05.203 回答
0

进度对话框未显示的原因有很多,但在您的情况下,我想这是因为您传递错误Context以显示ProgessDialog,请检查您的Activity上下文。确保您使用正确Context或只是将其更改为ApplicationContext

ProgressDialog dialog = ProgressDialog.show(activity, "", "Loading...",true);

检查这一行,尤其是activity. 希望这可以帮助。

于 2013-08-12T02:38:18.357 回答