每次将数据添加到SQLlite DB后,ChangeCursor()似乎相当浪费和低效

时间:2014-04-10 14:33:52

标签: android sql sqlite android-cursoradapter qsqlquery

作为学习一些Android编程的一部分,我被赋予了编写一个简单的todo应用程序的任务,该应用程序将任务存储在SQLlite DB上。

我使用cursorAdapter(或此类的自定义扩展)来“链接”到xml中的listView,同时包含用户添加的实际任务。

我的应用程序应支持此列表中的两个简单操作:添加和删除。问题是,每次我从这个列表中添加或删除一个项目(任务)时,当前的适配器都有一个不再相关的游标,所以我必须用另一个替换它(adapter.chagneCursor(newCursor))。

流程是这样的:

  1. 添加请求的任务
  2. 执行SQL查询(表格插入等)
  3. 更新适配器的游标:adapter.changeCursor(newCursor)

    • 我遇到的问题是这个newCursor - 这个newCursor是通过运行另一个执行SQL查询的方法实现的,该方法只返回表的所有值(I.E. SELECT * from t;)
  4. 我的问题是:这在我看来相当低效和浪费。每次我添加(或删除)任务时,我都应该运行另一个遍历表中所有值的查询,并将光标返回给它们。 我想知道是否还有另一种更有效的方法。

    我应该注意到我对android编程很新,所以我会劝告任何建议和更正。

    谢谢!

0 个答案:

没有答案