首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >安卓MergeCursor在3.x以上的版本上崩溃了吗?

安卓MergeCursor在3.x以上的版本上崩溃了吗?
EN

Stack Overflow用户
提问于 2012-01-05 02:45:49
回答 1查看 576关注 0票数 1

有没有人用过这个类,看看它在android 3.x和更高版本中是否被破坏了?它在以前的版本中对我来说工作得很好。下面是一个例子:

代码语言:javascript
运行
复制
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
MatrixCursor cursorOne = new MatrixCursor(new String[]{ "_id", "name", "description" }); 

cursorOne.addRow(new Object[]{ 5, "Object 2", "Description 2" }); 
cursorOne.addRow(new Object[]{ 5, "Object 3", "Description 3" }); 
cursorOne.addRow(new Object[]{ 5, "Object 4", "Description 4" }); 
cursorOne.addRow(new Object[]{ 5, "Object 5", "Description 5" }); 

CursorAdapter cursorAdapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_2, cursorOne, new String[] { "name", "description" }, new int []{ android.R.id.text1, android.R.id.text2 }); 

MatrixCursor cursorTwo = new MatrixCursor(new String[]{ "_id", "name", "description" }); 

cursorTwo.addRow(new Object[]{ 5, "Object 2", "Description 2" }); 
cursorTwo.addRow(new Object[]{ 5, "Object 3", "Description 3" }); 
cursorTwo.addRow(new Object[]{ 5, "Object 4", "Description 4" }); 
cursorTwo.addRow(new Object[]{ 5, "Object 5", "Description 5" }); 

MergeCursor mergeCursor = new MergeCursor(new Cursor[] { cursorOne, cursorTwo }); 

cursorAdapter.changeCursor(mergeCursor);

setListAdapter(cursorAdapter); 
}

它没有显示任何东西,看起来像是在清理光标。对于SDK > 3.x,我是否遗漏了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-06 02:20:11

好吧,我找到了一个解决方案:

我将CursorAdapterSimpleCursorAdapter导入替换为兼容包上的导入,并使用CursorAdapter.swapCursor而不是CursorAdapter.changeCursor

似乎与swapCursor没有关闭上一个光标有关。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8732187

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档