Java Can';t下拉刷新列表(mSwipeRefreshLayout)

Java Can';t下拉刷新列表(mSwipeRefreshLayout),java,android,multithreading,list,swiperefreshlayout,Java,Android,Multithreading,List,Swiperefreshlayout,我无法通过onRefresh处理程序刷新UI线程上的列表(网络线程,因此没有UI线程),这是我尝试过的代码: @Override public void onRefresh() { new Handler().postDelayed(new Runnable() { @Override public void run() { try { final Sh

我无法通过onRefresh处理程序刷新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);
}
@覆盖
公共void onRefresh(){
new Handler().postDelayed(new Runnable()){
@凌驾
公开募捐{
试一试{
最终SharedReferences SharedReferences=AktuellesActivity.this.getSharedReferences(“gemeindeMuckendorf”,Context.MODE_PRIVATE);
List newsList=Utils.getNewsFromHTML(Utils.getHTML(“www.muckendorf-wipfing.at/22-0-Aktuelle+Meldungen.html”);
SharedReferences.edit=SharedRefers.edit();
edit.putString(“aktuellesList”,newObjectSaver().saveString(新闻列表));
edit.commit();
最终列表标题=新的ArrayList();
用于(新闻:新闻列表)
headers.add(news.getHeader());
标题。添加(“测试”);
AktuellesActivity.this.runOnUiThread(新的Runnable(){
@凌驾
公开募捐{
lv.setAdapter(新的ArrayAdapter(AktuellesActivity.this,android.R.layout.simple_list_item_1,headers));
lv.invalidate();
}
});
}捕获(例外e){
e、 printStackTrace();
}
mSwipeRefreshLayout.setRefresh(false);
}
}, 2000);
}
我有一个列表,它得到一个字符串,把它放在一个列表中,然后我想让它得到这个列表来替换旧的列表,但显然它不起作用。。什么都不做。我不能完全测试它,但我很确定它不起作用。有人能帮我吗? 谢谢

试试这个

  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);
                }
            });
refreshLayout=(PullRefreshLayout)getView().findViewById(R.id.swipeRefreshLayout);
refreshLayout.setOnRefreshListener(新的PullRefreshLayout.OnRefreshListener(){
@凌驾
公共void onRefresh(){
refreshLayout.setRefreshing(true);
new Handler().postDelayed(new Runnable()){
@凌驾
公开募捐{
字符串html=“”;
试试{
html=Utils.getHTML(“http://www.muckendorf-wipfing.at/22-0-Aktuelle+html),;
List news=Utils.getNewsFromHTML(html);
列表标题=新建ArrayList();
for(int i=0;i
html=Utils.getHTML(“);将其从uiThread中删除。@tinysunlight它现在已关闭,仍然不起作用。这只是另一种写入方法,不是吗?对我来说,循环正在旋转,它只是不更新列表…检查数据是否来自该Url?我发布的是正确的刷新方法,您必须将您的逻辑放入public void run()中方法在刷新后获取所需内容