从硬编码数组而不是 DB 创建游标

Posted

技术标签:

【中文标题】从硬编码数组而不是 DB 创建游标【英文标题】:Create a cursor from hardcoded array instead of DB 【发布时间】:2013-08-19 21:30:14 【问题描述】:

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

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

有没有办法创建一个基于内存数据结构(如数组)的 Cursor 对象?有没有办法可以使用硬编码数组作为光标?

谢谢

【问题讨论】:

【参考方案1】:

查看MatrixCursor documentation。检查例如this example。

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 19,最低 API 支持为 8。 @FaddishWorm:我解决了这个问题。这是一个愚蠢的错误。我在错误的地方打电话,即。不在类的任何方法中。我设法将它作为 getActivity().startManagingCursor(matrixCursor) 工作,因为该类是一个片段。 如果有完整的代码就好了。 IE 那个布局是你做的???我只是在这里测试库,我需要一个带字符串的光标【参考方案2】:

也许你可以查看MatrixCursor 类,你可以调用addRow((Iterable<?> columnValues)addRow(Object[] columnValues) 希望会有所帮助

【讨论】:

【参考方案3】:

使用MatrixCursor,而不是不太方便的addRow(),使用builder方法newRow()

【讨论】:

以上是关于从硬编码数组而不是 DB 创建游标的主要内容,如果未能解决你的问题,请参考以下文章

谷歌驱动API的Android如何登录并从硬编码我的硬盘帐户注销无需用户交互?

SaveFileDialog而不是硬编码保存方向

“字节码”而不是硬编码着色器性能

如何在触发器中循环所有列名称而不对其进行硬编码

为啥当我使用 .map 而不是硬编码来动态填充内容时,Material UI 选项卡停止工作?

为啥库需要硬编码矢量化而不是编译器自动矢量化