在加载所有内容之前,ProgressDialog会消失

时间:2014-12-08 17:40:51

标签: android handler progressdialog ui-thread

我很抱歉这个奇怪的标题,但我没有找到其他方法来解释这个问题。 在Fragment中我必须显示ProgressDialog,直到片段内的每个指令都完成为止。问题是它必须在布局必须更改前5秒消失。 这是我的代码:

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()的{​​{1}}之后,此片段中的所有内容都将成功加载,但它不是。我必须等待5秒钟,直到所有东西都装满了,我不明白为什么,希望我能在这里得到一些答案。如果对我的代码有一些疑问,请问,我不得不削减它的很多部分,我无法解释这个问题更好的抱歉。我还尝试将ProgressDialog dismiss()置于延迟ProgressDialog的帖子中,但是我已取消了Handler的动画。

1 个答案:

答案 0 :(得分:1)

您是否尝试过最后调用dismiss()方法?

gv.setAdapter(gridadapter);
gridadapter.notifyDataSetChanged();
progressDialog.dismiss();