目前,我正在多列ListView中显示来自SQLite数据库的数据。但是,我想在我的数据中使用计算列,涉及比SQLite查询中可用的更复杂的数学函数。 在this thread中,针对这种情况给出了以下建议:
...如果你把Cursor放到某种CursorAdapter中,你可以: (1)将Cursor转换为ArrayList,其中Position是您使用数据定义的某个Java类 (2)关闭光标,释放它占用的RAM (3)使用Arrays.sort()对ArrayList进行排序 (4)将ArrayList包装在ArrayAdapter中并使用你在使用CursorAdapter的地方
我的问题是我在第(4)步陷入困境,因为ArrayAdapter似乎不如SimpleCursorAdapter灵活。我一直在使用SimpleCursorAdapter来定义从数据库列到ListView的映射,但似乎没有为ArrayAdapter定义等效方法。
我在Web上看到了一个名为ArrayListCursor的Android对象的引用。这听起来好像它会做我想要的,但它没有出现在当前的Android参考中,它似乎没有被Eclipse识别。
如果已取代ArrayListCursor取代了它?
答案 0 :(得分:1)
我不记得见过ArrayListCursor
。有一个MatrixCursor
,允许您从行和单元格中构建Cursor
。您也可以实施AbstractCursor
来做任何您想做的事。
无论你做什么,尽量减少你做的数据复制,这就是为什么我会建议:
AbstractCursor
子类,它包装数据库Cursor
并混合计算值Cursor
并使用CursorAdapter
子类来混合计算值