从硬编码数组创建游标而不是从数据库中创建。

44

我正在尝试为一个小游戏应用程序制作拖放列表。

列表中有6个条目。但是,我添加的库需要与数据库通信的Cursor对象。这对我的情况来说有些过度了。

是否有一种方法可以创建基于内存数据结构(如数组)的Cursor对象?是否有一种方法可以使用硬编码的数组作为我的Cursor?

谢谢

3个回答

55

查看 MatrixCursor 文档。例如,查看此示例

String[] columns = new String[] { "_id", "item", "description" };

MatrixCursor matrixCursor= new MatrixCursor(columns);
startManagingCursor(matrixCursor);

matrixCursor.addRow(new Object[] { 1, "Item A", "...." });

SimpleCursorAdapter adapter = 
        new SimpleCursorAdapter(this, R.layout.layout_row, matrixCursor, ...);

setListAdapter(adapter);

@FaddishWorm 感谢您的帖子。请问您能告诉我为什么在使用startManagingCursor(matrixCursor)时会出现“方法的返回类型缺失”错误,以及如何解决这个问题吗?我的最低API支持版本是8,而我正在使用API 19。 - Dexter
@FaddishWorm:我解决了这个问题。这是个愚蠢的错误。我在错误的位置调用了它,也就是没有在类的任何方法中。我设法通过 getActivity().startManagingCursor(matrixCursor) 来解决它,因为该类是一个碎片(Fragment)。 - Dexter
2
完整的代码会很好。那个布局是你自己做的吗?我这里只是在测试库,我需要一个带字符串的光标。 - StarWind0

2
也许您可以检查一下MatrixCursor类,您可以调用addRow((Iterable<?> columnValues)addRow(Object[] columnValues)方法。希望这能帮到您。

1
使用MatrixCursor代替不太方便的addRow(),使用构建器方法newRow()。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接