更改光标后Android ListView不刷新

标签 android listview android-cursoradapter mergecursor

以下代码用于填充无限的 ListView。 当用户到达列表末尾时,应用程序调用异步任务以获取更多项目,然后在执行后返回新游标并与前一个游标合并。 问题是此代码不适用于 ICS 和 Jelly Bean,但适用于 Froyo 和 Gingerbread。 在 ICS 和 JellyBean 上, ListView 变为空,但如果您记录游标大小,您将获得合并游标的大小。

Cursor[] cursors = new Cursor[2];   
//actual cursor   
cursors[0] = resourceCursor.getCursor();   
//new cursor returned by async task   
cursors[1] = result;   
MergeCursor mergeCursor = new MergeCursor(cursors);   
resourceCursor.changeCursor(mergeCursor);  

最佳答案

好的,我找到了一个解决方案,似乎是一个笨拙的解决方案,但它确实有效。 在我的研究中,所有问题似乎都解决了 Honeycumb 之后的问题,因此我将 API 级别更改为 11,以使 swapCursor 可用,然后在我的代码中:

Cursor[] cursors = new Cursor[2];   
//actual cursor   
cursors[0] = resourceAdapterCursor.getCursor();   
//new cursor returned by async task   
cursors[1] = result;   
MergeCursor mergeCursor = new MergeCursor(cursors);   
if (android.os.Build.VERSION.SDK_INT > android.os.Build.VERSION_CODES.GINGERBREAD){
    resourceAdapterCursor.swapCursor(mergeCursor);
} else {
    resourceAdapterCursor.changeCursor(mergeCursor);
}

谢谢!
最好的问候。
罗德里戈

关于更改光标后Android ListView不刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13953773/

相关文章:

java - 将 cordova 1.8.1 升级到 cordova 3.6.3 导致问题

android - 在 ViewPager 中用另一个 Fragment 替换一个 Fragment

Android 无法使用 ListView 加载主屏幕小部件

android - 键盘弹起时如何调整 ListView 的大小?

android - 具有自定义 CursorAdapter 滚动的 ListView 不流畅

android - 在 ListView 中的项目上应用项目单击监听器

android - CursorAdapter 没有填充 SearchView 的建议

android - 无法使所有模型的 Retrofit2 接口(interface)通用

java - Android Studio 从单选按钮获取值,并在其他地方使用它

android - 用户 ID 的 Firebase 远程配置条件