Android:有效地读取大型CSV文件?

时间:2014-04-06 15:48:44

标签: android

我有一个大型CSV文件(大约12000行),我需要在ListView中解析和显示。

我不想将整个文件加载到内存中,我想在10行组中读取它,当用户单击“加载更多”按钮时,将读取接下来的10行,依此类推。

有关如何以有效方式实现这一目标的任何建议?

由于

1 个答案:

答案 0 :(得分:1)

嗯,这是可能的起点:

步骤1:创建一个ArrayAdapter,其数据模型是您的读入行数组

步骤2:覆盖getCount()以返回数组大小加1,以适应额外的"加载更多"行

步骤3:覆盖getViewTypeCount()以返回2(或更多,如果CSV行的ListView行不完全相同 - 我将假设它们完全相同这个答案,所以这两种类型是"常规行"和"'加载更多'行")

步骤#4:覆盖getItemViewType()以在位置等于数组大小时返回1,或者对于低于该数据的所有内容返回0

步骤5:覆盖getView()以返回相应的行,包括返回"加载更多"行

步骤#6:当用户点击"加载更多"行,运行您的逻辑以读取下一个CSV行,将它们添加到您的数组,然后调用适配器上的notifyDataSetChanged()以警告ListView数据已更改