Java Can';t下拉刷新列表(mSwipeRefreshLayout)
我无法通过onRefresh处理程序刷新UI线程上的列表(网络线程,因此没有UI线程),这是我尝试过的代码: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
@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()中方法在刷新后获取所需内容