无法刷新列表刷新(mSwipeRefreshLayout)

时间:2015-12-31 16:17:45

标签: java android multithreading list swiperefreshlayout

我无法通过onRefresh Handler在我的UI线程上刷新我的列表(网络线程,因此没有UI线程),这是我尝试过的代码:

    @Override
public void onRefresh() {
        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                try {
                    final SharedPreferences sharedPrefs = AktuellesActivity.this.getSharedPreferences("gemeindeMuckendorf", Context.MODE_PRIVATE);
                    List<News> newsList = Utils.getNewsFromHTML(Utils.getHTML("www.muckendorf-wipfing.at/22-0-Aktuelle+Meldungen.html"));
                    SharedPreferences.Editor edit = sharedPrefs.edit();
                    edit.putString("aktuellesList", new ObjectSaver().saveString(newsList));
                    edit.commit();
                    final List<String> headers = new ArrayList<String>();
                    for(News news : newsList)
                        headers.add(news.getHeader());
                    headers.add("Test");
                    AktuellesActivity.this.runOnUiThread(new Runnable() {
                        @Override
                        public void run(){
                            lv.setAdapter(new ArrayAdapter(AktuellesActivity.this, android.R.layout.simple_list_item_1, headers));
                            lv.invalidate();
                        }
                    });
                } catch (Exception e) {
                    e.printStackTrace();
                }
                mSwipeRefreshLayout.setRefreshing(false);
            }
        }, 2000);
}

我的List有一个获取String的List,把它放在List中,然后我希望它让List替换旧的List但显然它不会工作..什么都不做。我不能完全测试它,但我很确定它不起作用。有人可以帮帮我吗? 谢谢!

1 个答案:

答案 0 :(得分:0)

试试这个

  refreshLayout = (PullRefreshLayout) getView().findViewById(R.id.swipeRefreshLayout);
refreshLayout.setOnRefreshListener(new PullRefreshLayout.OnRefreshListener() {
                @Override
                public void onRefresh() {
                    refreshLayout.setRefreshing(true);
                    new Handler().postDelayed(new Runnable() {

                        @Override
                        public void run() {

                        String html = "";
                                    try { 
                                        html = Utils.getHTML("http://www.muckendorf-wipfing.at/22-0-Aktuelle+Meldungen.html");
                                        List<News> news = Utils.getNewsFromHTML(html);
                                        List<String> headers = new ArrayList();
                                        for (int i = 0; i < news.size(); i++)
                                            headers.add(news.get(i).getHeader());
                                        lv.setAdapter(new ArrayAdapter(AktuellesActivity.this, android.R.layout.simple_list_item_1, headers));
                                        lv.invalidate(); 
                                    } catch (Exception e) {
                                        e.printStackTrace();
                                    } 
                                        refreshLayout.setRefreshing(false);
                        }
                    }, 2000);
                }
            });