【问题标题】:Android - Can you update a Cursor for SQLite results?Android - 你可以更新 SQLite 结果的光标吗?
【发布时间】:2011-12-19 21:23:24
【问题描述】:

我的一个方法从一些 SQLite 查询结果返回一个 Cursor。

当我在游标中导航时,我想要更改/更新一些记录。我可以直接用光标更新吗?还是我必须使用光标中的记录 ID 手动 UPDATE?

【问题讨论】:

  • 我知道已经晚了,但我需要了解您到底想要什么,您想更新数据库中的一些记录并更新它们在游标中的值而不重新查询数据库?跨度>
  • 是的。但是,当我问这个问题时,我误解了光标的工作方式。
  • 我提出了解决方案,如果用户单击一个按钮,我现在有一个 5k 行光标显示在列表视图中,我必须更新数据库并修改光标值,因为UI 元素依赖于此,我做了这个,我通过修改游标值和更新数据库来避免重新查询问题。好还是不好?

标签: java android sqlite android-cursor


【解决方案1】:

您不能使用光标直接更新记录。阅读Android Cursor doc。

【讨论】:

  • @ShirishHerwade 对我来说,链接的讨论似乎没有谈论将任何内容写入数据库。它只是提供过滤/转换读取数据的解决方案。
【解决方案2】:

您需要实现一个允许更新记录的 Content Provider,简而言之,您需要覆盖 ContentProvider 类中的更新功能。

public int update(Uri uri, ContentValues values, String where, String[] whereArgs)

简而言之,您必须更新它们,这不是直接从光标中接收到的数据完成的。

This 和 this 链接应该会有所帮助。

【讨论】:

    【解决方案3】:

    为此,最好的方法是为您的数据实现内容提供程序http://developer.android.com/guide/topics/providers/content-providers.html

    你可以使用像datadroid这样的框架http://datadroid.foxykeep.com/

    【讨论】:

      猜你喜欢
      • 2011-12-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多