2013-10-04 2 views
3

У меня есть ListFragment с пользовательским ListView. В «onCreateView» я раздуваю вид: View rootView = inflater.inflate(R.layout.fragment_subst, container, false);. Сейчас в «onActivityCreated» Я устанавливаю адаптера и загрузив какие-то данные, как это:Display ProgressDialog в ListFragment

MyAdapter adapter = new MyAdapter(getActivity(), new GetData().execute().get());

setListAdapter(adapter);

Downloadiing берет свое время и пользователю видеть только белую страницу с ActionBar. Это очень плохо, поэтому я добавил ProgressDialog:

ProgressDialog dialog = ProgressDialog.show(getActivity(), "Loading...", "Please wait...", true);

MyAdapter adapter = new MyAdapter(getActivity(), new GetData().execute().get());

setListAdapter(adapter);

dialog.dismiss();

Но ProgressDialog не показана. в чем именно проблема?: Я раздул представление перед отображением диалога ...

Спасибо!

ответ

0

Я просто изменил код, прежде чем использовать создать глобальную переменную

перед тем onPreExcute()

ProgressDialog dialog; 

    @Override 
    protected void onPreExecute() { 
     super.onPreExecute(); 
     dialog = ProgressDialog.show(getActivity(), "Loading...", "Please wait...", true); 
    } 

onPostExcute скрыть диалоговые

@Override 
    protected void onPostExecute(String s) { 
     super.onPostExecute(s); 
     dialog.hide(); 
    } 
3

В вашем AsyncTask GetData

диалога Показать прогресс в вашем onPreExecute метод

ProgressDialog dialog = ProgressDialog.show(getActivity(), "Loading...", "Please wait...", true); 

и закрыть диалоговое окно в onPostExecute.

+0

Спасибо, я уже попробовал это но ProgressDialog показан только очень короткий и до того, как будет показан ProgressDialog, белая страница отображается в течение одной-двух секунд. – zoom

+0

Я нашел еще одно очень простое решение. Я вставляю адаптер в AsyncTask, и теперь все работает так, как должно. Спасибо, в любом случае! – zoom