У меня есть вкладка + прокрутка приложения на 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)
}
Можете ли вы показать нам некоторые кода snippits? –
Я использую метод asyntask и метод onpreexecute. Я показываю progressdialog. Выполняю в фоновом режиме. Я загружаю данные из url, а затем выполняю пост. Я рассеиваю progressdialog, он отлично работает, это во втором фрагменте, но в диалоговом окне появляется первый фрагмент, как я могу он делает только для второй страницы – user3086226
Daan просит вас изменить свой вопрос и включить фактические фрагменты кода. Не просто описать код в комментарии. –