删除最后一项时,ListView不会刷新

时间:2012-10-18 19:14:09

标签: android android-listview android-cursoradapter android-listfragment

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

情况如下。我有一些非空光标: enter image description here

然后我交换没有结果的游标: enter image description here

正如你所看到的,只有分隔线消失了。触摸屏幕后,两个项目都会消失。

这是我交换光标的函数:

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

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

请帮我解决这个问题。

2 个答案:

答案 0 :(得分:2)

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

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

我没有找到优雅的方式,也许你会有一些想法。

答案 1 :(得分:0)

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