2

このコードの実行中に読み込み中の画像を表示するにはどうすればよいですか?

HttpClient client = new DefaultHttpClient();
      HttpGet request = new HttpGet("http://www.google.com");
      try
      {
          HttpResponse response = client.execute(request);
          BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
          String line;
          StringBuilder str = new StringBuilder();
          while((line = reader.readLine()) != null) {
              str.append(line);
      }
          objwebview.loadData(str.toString(), "text/html", "UTF-8");
  }
  catch(Exception e)
  {
      e.printStackTrace();
      objwebview.loadData(e.toString(), "text/html", "UTF-8");
  }
4

1 に答える 1

3

AsyncTaskを使用してローディングバーを表示するようにコードを変更します

private class Getdataasynktask extends AsyncTask<String, Void, String> {

ProgressDialog progressDialog = new ProgressDialog(context);

      @Override
      protected void onPostExecute(String result) {     
      // show loaging bar here

    progressDialog.setMessage("Loading...");
    progressDialog.setCancelable(false);
    progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
    progressDialog.setProgress(0); // set percentage completed to 0%
    progressDialog.show();
          
      }

      @Override
      protected String doInBackground(String... params) {
          String strdata= getdatafromserver();
            return strdata;
      }      

      @Override
      protected void onPreExecute(String result) {
        
       objwebview.loadData(result.toString(), "text/html", "UTF-8");
       // dismiss progress bar here
       progressDialog.dismiss();
      }
 public String getdatafromserver(){
     String line;
      objwebview.loadData(str.toString(), "text/html", "UTF-8");
      HttpClient client = new DefaultHttpClient();
      HttpGet request = new HttpGet("http://www.google.com");
      try
      {
          HttpResponse response = client.execute(request);
          BufferedReader reader = new BufferedReader(new 
                    InputStreamReader(response.getEntity().getContent()));
         
          StringBuilder str = new StringBuilder();
          while((line = reader.readLine()) != null) {
              str.append(line);
      }
          
  }
  catch(Exception e)
  {
      e.printStackTrace();
      line=e.toString();
     
  }
return line;
}
}

UIスレッドの使用からこのAsyncTaskを実行するため

new Getdataasynktask().execute("");

onProgressUpdateまた、とを使用して、結果を使用してUiスレッドにpublishProgressロードバーを表示することもできます。AsyncTask詳細については、を参照してください

http://developer.android.com/reference/android/os/AsyncTask.html

于 2012-12-08T06:51:33.447 に答える