Прошу прощения за странное название, но я не нашел других способов объяснить это. В Fragment
у меня есть ProgressDialog
, который должен отображаться до тех пор, пока не будут выполнены все инструкции внутри фрагмента. Проблема в том, что она исчезает за 5 секунд до того, как макет должен быть изменен. Вот мой код:ProgressDialog исчезает до того, как все загрузится
final View view = inflater.inflate(R.layout.fragment_lista, container, false);
GridView gv = (GridView) view.findViewById(R.id.gridView);
Gson gson = new GsonBuilder().serializeNulls().create();
ProgressDialog progressDialog = ProgressDialog.show(getActivity(), "", "Loading...", true);
new Thread(new Runnable() {
@Override
public void run()
{
String urlLista = null;
try {
urlLista = connection("https://www.something.com"); //personal method for this connection
} catch (IOException e) {
e.printStackTrace();
}
String listaTrimmed = urlLista.trim();
ListaManga listaManga = gson.fromJson(listaTrimmed, ListaManga.class);
List prov = new ArrayList();
for (int i = 0; i < 15; i++) {
prov.add(listaManga.getManga().get(i));
} //ArrayList of 15 elements
GridAdapter gridadapter = new GridAdapter(getActivity(), prov); //custom adapter
});
getActivity().runOnUiThread(new Runnable() {
@Override
public void run()
{
progressDialog.dismiss(); //Here is when the ProgressDialog obviously disappear
gv.setAdapter(gridadapter);
gridadapter.notifyDataSetChanged();
}
});
}
}).start();
Если я должен быть честным я ожидал, что с моим кодом, после dismiss()
из ProgressDialog
, все в этом фрагменте будет успешно загружен, но это не так. Мне нужно подождать еще 5 секунд, пока все не загрузится, и я не понимаю, почему, надеюсь, что я получу здесь несколько ответов. Если есть какие-то вопросы о моем коде, просто спросите, мне пришлось сократить множество его частей, и я не мог объяснить этот вопрос, извините. Я также попытался поместить dismiss()
из ProgressDialog
в сообщение с задержкой Handler
, это сработало, но я отменил анимацию ProgressDialog
.
Да, я тоже пробовал, но он не меняется. Странная вещь заключается в том, что в режиме отладки установите адаптер и «обновите» это не требует времени. Поэтому я спрашивал себя: где приложение «нужно время» после отклонения диалога? –