2

我的应用程序有问题。我将 CursorLoader 与 CursorAdapter 结合使用。一切都按预期工作,除了一个条件:当我在 ListView 上有一些项目并且我将适配器中的光标交换为空的光标时,不会删除可见项目(只有行之间的分隔符消失)。当我触摸 ListView 时,它会立即消失。

这是情况。我有一些非空光标: 在此处输入图像描述

然后我换成没有结果的游标: 在此处输入图像描述

如您所见,只有分隔线消失了。触摸屏幕后,两个项目都消失了。

这是我交换光标的函数:

public void onLoadFinished(Loader<Cursor> loader, Cursor cursor)
{
    ratesAdapter.swapCursor(cursor);
}

片段来源: http: //pastebin.com/N2YGzgRj

请帮我解决这个问题。

4

2 回答 2

2

好的,所以在进一步调查问题后,我发现这个问题只适用于Android 4.0.x。在 2.2、2.3 或 4.1 中不存在此错误,仅在 4.0 中存在。我解决此错误的唯一方法是添加到 onLoadFinished()

getListView().setVisibility(View.GONE);
getListView().setVisibility(View.VISIBLE);

我不觉得它优雅的方式,但也许你会有一些想法。

于 2012-10-20T10:35:39.147 回答
0

不包括notifyDataSetChanged();通常是导致这些 listView 不刷新问题的原因。在您的加载代码之后尝试包含它是我可以推荐的所有内容,直到我获得更多信息。

于 2012-10-18T21:14:10.463 回答