4

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

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);  
4

1 回答 1

1

好的,我找到了一个解决方案,似乎是一个丑陋的解决方案,但它有效。在我的研究中,所有问题似乎都解决了 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);
}

谢谢!
最好的祝福。
罗德里戈

于 2012-12-19T15:47:49.127 回答