我有一个包含6000多个条目的数据库。我正在使用此示例http://eshyu.wordpress.com/2010/08/15/cursoradapter-with-alphabet-indexed-section-headers/来显示内容。但现在活动无法处理它。我每次都会得到一个ANR对话框。我如何有效地处理这种情况?
答案 0 :(得分:1)
通过每个条目并向索引器询问该条目属于哪个部分是没有意义的。在您的情况下,索引器可能正在进行6000次二进制搜索。然后将结果放在一个地图中,该地图将有30个以下的条目,并进行多次覆盖。
滥用sectionToPosition Map来创建一个开始位置的部分也不是一个好主意。
一个。您要么准备一个包含统计数据的表格,这将是处理如此多数据的最佳方式。
B中。您可以使用数据库计算每个部分的条目数,并构建您自己的部分,从起始pos map。
SELECT UPPER(SUBSTR(LTRIM(side_a), 1, 1)), COUNT(*) FROM cards GROUP BY 1 ORDER BY 1 ASC;