有人能解释一下为什么下面的代码不起作用吗? 每次用户使用以下代码单击刷新按钮时,我都会尝试更新我的报告列表
在 updateReports
中(所有数据下载和解析之后):
reportsList = newReportsList;
listAdapter.notifyDataSetChanged();
之前在onCreateView
中:
listAdapter = new ReportsListAdapter(activity, R.layout.list_item_reports, reportsList);
listView.setAdapter(listAdapter);
但是列表没有刷新,一直显示旧的报告。我尝试使用 listAdapter.clear()
和 listAdapter.add()
以及 for
(我不能使用 addAll
因为我需要使用 API 10) 但它给了我一个空指针异常。
有什么策略可以以最干净的方式进行替换?
最佳答案
reportsList = newReportsList;
listAdapter.notifyDataSetChanged();
不起作用,因为您只是更新引用 reportsList
并引用 newReportsList
。这不会更新适配器具有的引用(对原始数组的原始引用)
您的第二种方法应该可行,但您需要发布类代码并提供 NullPointerException
的详细信息。
关于android - 替换列表适配器中的所有条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24161429/