- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发一个 Android 项目,需要尽快完成。
该应用程序的功能之一是加载 SQLite 数据库内容并将其列在 ListActivity 内的 ListView 中。
数据库包含一些表,其中2个非常大。
数据库中的每个项目都有很多列,其中我需要至少显示 2 个(名称、价格),但最好是 3 个。
这似乎是一项非常简单的任务,因为在应用程序的这一部分我需要做的就是读取数据库并将其列出。我没有任何问题地做到了这一点,测试了应用程序与小型样本数据库。
在我的第一个版本中,我使用 Cursor 来获取查询,然后使用 ArrayAdapter 作为列表的适配器,在查询之后我简单地从头到尾循环游标,并且对于每个位置我将 Cursor 的内容添加到适配器。
onItemClickListener 再次查询数据库与其他参数(基本上我打开类别),因此它清除适配器,然后循环 Cursor 并将其内容再次添加到适配器。
该应用运行起来非常棒,但是当我使用现实生活中的大型数据库(>300MB)时,我的应用突然需要很长时间才能显示内容,有时甚至会阻塞。
所以我做了一些研究并开始使用 SimpleCursorAdapter,它使用常用参数(String[] from、int[] to 等自动将 Cursor 的内容链接到 ListView,我在其中使用了 android.R.layout。 simple_list_item_2 和 android.R.id.text1 和 text2)。
问题是,加载时间变化不大。
我在不同的网站和教程中看到了一些建议的解决方案,其中大多数都以某种方式使用 AsyncTask 类。我尝试自己手动实现它,但很难跟踪多个线程,但我失败了。
教程一直告诉我如何使用内容提供者来做到这一点,但我没有发现我的具体情况:非常大的 SQLite 数据库 -> 读取到 ListView。
现在我的脑子里塞满了 LoaderManager、LoaderAdapter 等概念,所有这些概念在我脑海中混杂在一起。
任何人都可以为我提供一个完整、漂亮、干净的解决方案来完成这个“简单”的任务吗?
同样:我想读取一个大的 SQLiteDatabase 并将其显示在 ListView 中。我希望应用程序不被阻止。
我需要一个具有成员函数的类,该成员函数将查询和 ListActivity 的上下文作为参数,并负责在 View 中显示查询结果。
请不要给我提供抽象的答案。我的时间不多了,我现在很困惑,我需要一个干净的完整解决方案。
你是我唯一的希望。
最佳答案
如果你查询这么大的数据库需要时间,你需要找到一个聪明的方法,
比如限制你的数据库查询获取前 10 或 30 个项目然后维护,一旦达到最后一个项目查询剩余的 30 个项目并绑定(bind)它们
引用这个教程,它会教你如何在 ListView 中动态添加数据
http://p-xr.com/android-tutorial-dynamicaly-load-more-items-to-the-listview-never-ending-list/
上面的列表已经过期了
关于android - 在 ListActivity 中加载 BIG SQLiteDatabase,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15742118/
我正在开发一个需要能够平均三个数字的 Facebook 应用程序。但是,它总是返回 0 作为答案。这是我的代码: $y = 100; $n = 250; $m = 300; $number = ($y
我只是无法弄清楚这一点,也找不到任何对我来说有意义的类似问题。我的问题:我从数据库中提取记录,并在我的网页上以每个面板 12 条的倍数显示它们。因此,我需要知道有多少个面板可以使用 JavaScrip
我是一名优秀的程序员,十分优秀!