我正在使用片段中的默认列表视图来显示正在从URL调用的数据。有一个包含ListView的SwipeRefreshLayout。但是,当我刷新时,旧数据仍在列表视图中,新数据刚刚添加到列表顶部。有没有办法使旧数据无效?
我已经利用其从SimpleAdapter类创建像这样一个ListAdapter的:
ListAdapter adapter = new SimpleAdapter(getActivity(), newsItemList, R.layout.list_item, new String[]{TAG_TITLE, TAG_DATE, TAG_OWNER}, new int[]{R.id.news_title, R.id.news_date, R.id.news_owner});
lvGeneralNews.setAdapter(adapter);
我试图让适配器null或使用自带的ListView中invalidate()
方法。该适配器没有notifyDataSetChanged()
方法。 newsItemList
是一个ArrayList,它具有来自URL的数据。它宣称,像这样:
ArrayList<HashMap<String,String>> newsItemList;
如何在使用ListAdapter时使ListView失效以获得新数据
0
A
回答
1
重要的是: 当你得到新的数据时,你清楚ArrayList> newsItemList吗? 如果u做 只是重复:
ListAdapter adapter = new SimpleAdapter(getActivity(), newsItemList, R.layout.list_item, new String[]{TAG_TITLE, TAG_DATE, TAG_OWNER}, new int[]{R.id.news_title, R.id.news_date, R.id.news_owner});
lvGeneralNews.setAdapter(adapter);
0
everytym我还能保持它给了我一个空的错误call2the URL之前空。 – Manny265
除此之外,我应该能够点击任何新闻项目并阅读,但只有新的项目才能返回旧数据集带来的错误,即使他们在同一个列表中也是错误的 – Manny265
实际上这是正确的。我在onViewCreated()方法中初始化了该对象,而不是将该行移至要求刷新的方法。 – Manny265