2016-01-21 5 views
0

У меня есть вкладка, которая использует ViewPager для перемещения по трем фрагментам. Когда я загружаю фрагмент, мне нужно загрузить некоторые данные, поэтому я поместил код загрузки внутри AsyncTask, и я хотел показать ProgressDialog во время загрузки данных. Это код в моем AsyncTask:Фрагмент ViewPager не отображается ProgressDialog

public GetGeneralitaTask(Context c){ 
      this.c=c; 
    } 

    @Override 
    protected void onPreExecute() { 
     super.onPreExecute(); 
     progressDialog=new ProgressDialog(c); 
     progressDialog.setMessage("Caricamento..."); 
     progressDialog.setIndeterminate(true); 
     progressDialog.setCancelable(false); 
     progressDialog.show(); 
    }@Override 
    protected String doInBackground(Void... params) { 

     the loading part.... 
    } 
    @Override 
    protected void onPostExecute(String s) { 
     super.onPostExecute(s); 

     progressDialog.dismiss(); 
     Log.e("ending ", "second task"); 
    } 

затем в Fragment onCreateView я называю:

getGeneralitaTask=new GetGeneralitaTask(getActivity()); 
    getGeneralitaTask.execute(); 
    try { 
     getGeneralitaTask.get(); 
    } catch (InterruptedException | ExecutionException e) { 
     e.printStackTrace(); 
    } 

но ничего не показали ... wiew просто стоит на месте, а пока данные загружаются и заселяет мнения

ответ

1

проблема находится на этой линии:

getGeneralitaTask.get();

Это приведет к тому, что текущий поток будет ждать завершения задачи.

+0

спасибо, чувак, не думал, что это так просто –

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