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

進行状況ダイアログが表示されない理由はたくさんありますが、あなたの場合は、Context表示するのに間違ったパスを渡したことが原因だと思います。コンテキストProgessDialogを確認してください。Activityそのために適切なものを使用していることを確認するContextか、単に変更してくださいApplicationContext

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

この行、特にactivity. お役に立てれば。

于 2013-08-12T02:38:18.357 に答える
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 に答える