2


インターネットからダウンロードしたjson配列の水平プログレスバーダイアログを取得しようとしています。これが私の現在のコードです

protected JSONArray doInBackground(Date... arg0) {
  try {
    BufferedReader in = null;
    String result = null;

    HttpClient client = new DefaultHttpClient();
    HttpConnectionParams.setSoTimeout(client.getParams(), 30000);
    HttpConnectionParams.setConnectionTimeout(client.getParams(),
            30000);

    String getter = arg0[0].getDate();

    URI website = new URI("http://10.0.2.2/bmorg/getEvent?day=" + getter);

    HttpGet request = new HttpGet();
    request.setURI(website);

    HttpResponse response = client.execute(request);

    in = new BufferedReader(new InputStreamReader(response
            .getEntity().getContent()));

    StringBuffer sb = new StringBuffer("");
    String l = "";
    String nl = System.getProperty("line.seperator");
    while ((l = in.readLine()) != null) {
      sb.append(l + nl);
    }

    in.close();
    result = sb.toString();

    return new JSONArray(result);
  } catch (Exception e) {
    _worked = false;
    e.printStackTrace();
  }
  return null;
}

これはうまくいきますが、私が欲しいのはダウンロードステータスです。HTTP リクエストとダウンロードされたバイトからサイズを取得して、これをプログレスバーの onChange メソッドに入れる方法がわかりません。

4

2 に答える 2

0

ここで進捗状況を更新します。

while ((l = in.readLine()) != null) {
      sb.append(l + nl);
    }

あなたはそれのためにAsyncTask.publishProgressAsyncTask.onProgressUpdate方法を使うことができます。

于 2012-09-09T13:21:44.537 に答える
0

http 応答のサイズを取得して進行状況バーの最大値を設定し、ループ内で進行状況バーの進行状況を更新します。while

于 2012-09-10T10:46:57.740 に答える