android - 替换列表适配器中的所有条目

标签 android android-listview listadapter

有人能解释一下为什么下面的代码不起作用吗? 每次用户使用以下代码单击刷新按钮时,我都会尝试更新我的报告列表

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/

相关文章:

android - 在 Android 4.x 上按下时 Listview 中的 EditText 失去焦点

android - 如何使用 Firebase 列表适配器

android - 移动实时同步(如 Trello) : sockets?

android - 扩展ActionBarActivity时类型activity的层级不一致

特定号码的 Android 短信监听器

android - 没有 clientID 和 clientSecret 的 Accountmanager Auth token

android - 使用 ListView 滚动线性布局

java - Android Sqlite - 获取正确的数据库行id

android - 当我将 AlertDialog.Builder 的 setSingleChoiceItems 与 listadapter 一起使用时,单选按钮不显示

android - 如何使用 Android 上下文菜单(点击并按住)