我有一个ListView
,其上实现了一个SwipeRefreshLayout
。我想要做的是在用户向下滑动时更新ListView
。我试过寻找不同的选择,但不幸的是我无法找到解决方案。正在更新桌面上的列表视图
重新加载Fragment
或onCreate
函数会更好吗?
这里是我的代码
public class NewsTab extends Fragment implements OnRefreshListener{
final LinkedList<News> listnews = new LinkedList<News>();
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.news_tab, container, false);
swipeRefreshLayout = (SwipeRefreshLayout) view.findViewById(R.id.swipe_refresh_layout);
swipeRefreshLayout.setOnRefreshListener(this);
newslist = (ListView) view.findViewById(R.id.displaynews);
populatelist(listnews);
adapter = new CustomAdapter(getActivity(),listnews);
newslist.setAdapter(adapter);
return view;
}
public void onRefresh() {
swipeRefreshLayout.setRefreshing(true);
new StartNewsLoad().execute("");
}
private class StartNewsLoad extends AsyncTask<String, Void, String> {
//ProgressDialog pd = null;
protected String doInBackground(String... params) {
reloadNews();
loadTopNews();
//NewsTab.listnews = new LinkedList<News>();
return null;
}
protected void onPostExecute(String result) {
adapter = new CustomAdapter(getActivity(),listnews);
adapter.notifyDataSetChanged();
swipeRefreshLayout.setRefreshing(false);
}
}
/// ANSWER
我找到了答案!我在我的服装适配器中添加了以下代码行,并将其称为adapter.refresh();
public void refresh(LinkedList<News> newsList)
{
this.results = newsList;
notifyDataSetChanged();
}
谢谢大家的帮助!
您需要在通知它之前在ListView上设置适配器 –
除此之外,'listnews'从哪里来?请显示[mcve] –
@ cricket_007感谢您的回复listnews是我创建的全球链表,请参阅上面的编辑 – paul590