1

编辑:在我得到的这个 OutOfMemory 错误上花费了几乎一整天之后,结果证明我根本没有推进光标。但是,我仍然希望在下面获得我的问题的答案。为了澄清,我的问题是:

为直接连接到数据库以检索数据的列表视图制作自定义适配器是否更快,或者应该先制作该数据的数组列表然后将其传递给默认数组适配器?

我目前正在开发一个应用程序,作为其功能之一的一部分,我需要能够从内部数据库中获取数据并在各种列表视图中显示其中的一部分。这些列表视图都在 ViewFlipper 中链接在一起,以便在视图之间移动。我一次最多使用大约 5000 个值。(这是我负责处理的数据集的压力大小)。

我应该编写一个直接链接到数据库并提取值的自定义适配器,还是有更好的方法来解决这个问题?我试图为数据库创建一种包装类,该类将从数据库中提取所有必要的数据并将其放入 POJO,但我不断收到 OutOfMemory 异常(5 个字符串值 * 5000 行 = 25000 个字符串似乎在我的情况)。

4

1 回答 1

0

没有相同数量的值,5000,但我遇到了类似的问题。我最终在 ListAdapter 上使用了私有 arrayList,该列表将仅包含部分列表,例如 100 个项目。您的光标最初可以包含填充前 100 个项目的值,当您向下滚动查找更多项目时,您可以启动另一个光标以检索接下来的 50 个项目。通过添加/删除新/旧项目并刷新适配器来控制 arrayList 中 100-150 个项目的范围。

我投票赞成您的问题,因为也许有人找到了更好的方法,我也想知道。

于 2013-06-12T13:03:54.170 回答