Android:使用ListView中多列ArrayList的数据

时间:2010-12-19 20:30:57

标签: android multidimensional-array cursor arraylist adapter

目前,我正在多列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取代了它?

1 个答案:

答案 0 :(得分:1)

我不记得见过ArrayListCursor。有一个MatrixCursor,允许您从行和单元格中构建Cursor。您也可以实施AbstractCursor来做任何您想做的事。

无论你做什么,尽量减少你做的数据复制,这就是为什么我会建议:

  • 创建自己的AbstractCursor子类,它包装数据库Cursor并混合计算值
  • 只保留原始Cursor并使用CursorAdapter子类来混合计算值