2014-01-08 2 views
0

У меня есть вкладка + прокрутка приложения на android.it s отлично работает. Я загружаю данные из url с json на второй странице с помощью метода asyntask, и он тоже работает нормально. Но когда он загружает данные, я показываю progressbar. Проблема заключается в том, что диалог прогресса отображается на первой странице. Я хочу увидеть только вторую страницу. Как я могу это сделать?Когда я прокручиваю вторую страницу, я хочу увидеть progressdialog?

Спасибо,

EDIT

вот мой код

общественного класса web_get_thread расширяет AsyncTask {

private ProgressDialog progressDialog = new ProgressDialog(context); 
InputStream inputStream = null; 
String result = ""; 

protected void onPreExecute() { 
    progressDialog.setMessage("Loading data..."); 
    progressDialog.show(); 
    progressDialog.setOnCancelListener(new OnCancelListener() { 
     public void onCancel(DialogInterface arg0) { 
      web_api_get_thread.this.cancel(true); 
     } 
    }); 
} 

@Override 
protected String doInBackground(String... params) { 

    StringBuilder builder = new StringBuilder(); 
    try { 
     // Set up HTTP post 

     // HttpClient is more then less deprecated. Need to change to URLConnection 
     HttpClient client = new DefaultHttpClient(); 
     HttpGet httpGet = new HttpGet(params[0]); 
     HttpResponse response = client.execute(httpGet); 
     StatusLine statusLine = response.getStatusLine(); 
     int statusCode = statusLine.getStatusCode(); 
     if (statusCode == 200) { 
     HttpEntity entity = response.getEntity(); 
     InputStream content = entity.getContent(); 
     BufferedReader reader = new BufferedReader(new InputStreamReader(content)); 
     String line; 
     while ((line = reader.readLine()) != null) { 
      builder.append(line); 
     } 
     } else { 
     // Log.e(ParseJSON.class.toString(), "Failed to download file"); 
     } 
    } catch (UnsupportedEncodingException e1) { 
     Log.e("UnsupportedEncodingException", e1.toString()); 
     e1.printStackTrace(); 
    } catch (ClientProtocolException e2) { 
     Log.e("ClientProtocolException", e2.toString()); 
     e2.printStackTrace(); 
    } catch (IllegalStateException e3) { 
     Log.e("IllegalStateException", e3.toString()); 
     e3.printStackTrace(); 
    } catch (IOException e4) { 
     Log.e("IOException", e4.toString()); 
     e4.printStackTrace(); 
    } 
    // Convert response to string using String Builder 
    return builder.toString(); 
} // protected Void doInBackground(String... params) 


protected void onPostExecute(String string) { 

    //parse JSON data 
    try{ 
     JSONArray jArray = new JSONArray(string); 

     this.progressDialog.dismiss(); 

    } catch (JSONException e) { 

     Log.e("JSONException", "Error: " + e.toString()); 

    } // catch (JSONException e) 


} // protected void onPostExecute(Void v) 

}

+0

Можете ли вы показать нам некоторые кода snippits? –

+0

Я использую метод asyntask и метод onpreexecute. Я показываю progressdialog. Выполняю в фоновом режиме. Я загружаю данные из url, а затем выполняю пост. Я рассеиваю progressdialog, он отлично работает, это во втором фрагменте, но в диалоговом окне появляется первый фрагмент, как я могу он делает только для второй страницы – user3086226

+0

Daan просит вас изменить свой вопрос и включить фактические фрагменты кода. Не просто описать код в комментарии. –

ответ

0

Вы можете показать ProgressBar при егоначинает загружать URL-адрес и делает его невидимым, когда загрузка завершена. Для того, чтобы сделать это, вы можете просто реализовать WebViewClient и расширить onPageStarted и onPageFinished() следующим образом:

mWebView.setWebViewClient(new WebViewClient() { 

      @Override 
      public void onPageStarted(WebView view, String url, Bitmap facIcon) { 
       mProgressBar.setVisibility(View.VISIBLE); 
      } 

      @Override 
      public void onPageFinished(WebView view, String url) { 
       mProgressBar.setVisibility(View.GONE); 
      } 
     }); 
+0

благодарим вас за ответ, но я сделал большую ошибку, я не загружаю веб-просмотр. Я загружаю данные с url с помощью метода get. извините, что я младший, – user3086226

+0

Я редактирую свой вопрос, (ali kardeş sana mail atabilir miyim sorunu detaylı) – user3086226

Смежные вопросы