【问题标题】:Android large String array alternativesAndroid大字符串数组替代品
【发布时间】:2015-12-27 05:45:47
【问题描述】:

我有一个关于我的活动的列表视图,我想为列表视图实现输入搜索功能并有权访问过滤器。但是,数组中有很多字符串,以至于 Activity 需要一段时间才能加载或崩溃。

目前我只能在 String 数组崩溃之前存储四分之一的字符串。我已经尝试以编程方式添加字符串,也可以通过 android 文档中描述的 XML 来添加字符串。

存储信息而不是将它们保存在字符串数组中的最佳替代方法是什么?

提前致谢。

【问题讨论】:

  • 显示一些代码以便其他人可以提供帮助如何?
  • 一种方法是在内存中维护一个小的 LRUMap 并将所有字符串存储在一个文件中。如果搜索有命中,直接从地图返回。如果没有,则从文件中流式传输数据,然后在 Map 中显示并保存。
  • 另一种方式是每次只显示10/20个项目,并带有“加载更多”的按钮
  • @Nirel 这是个好主意。如果我想不出别的,我想我会实现的。
  • 使用sqlite db + SimpleCursorAdapter + FilterQueryProvider - 它不应该超过十几行(或最多两行)有效代码

标签: java android arrays performance


【解决方案1】:
  1. 部分加载项目,例如前 30 个,如果用户想要更多,他将单击 view more 按钮。 (良好做法)
  2. 尝试将您的Strings 写入文件,然后在需要时读取它们。

【讨论】:

  • 谢谢。我想我将不得不考虑将字符串写入文件,因为我需要将所有字符串放在一起,以便搜索过滤器过滤所有项目。
  • 如果你想存储很多字符串,你也可以使用SQLite,它是文件db,很轻。因此,您只需发出 sql 请求。
猜你喜欢
  • 2017-10-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-21
  • 1970-01-01
  • 2015-10-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多