【问题标题】:Content Resolver SQLite refresh data after operationContent Resolver SQLite 操作后刷新数据
【发布时间】:2018-09-20 10:28:21
【问题描述】:

我的问题是我执行内容解析器操作 (CRUD) 并且我的本地 Sqlite 数据库获取了更改,但它们没有在我的 TEXTVIEW 中显示/刷新这些更改,在这里我不是在谈论刷新列表视图/recyclerview像这里 100% 的问题这样的适配器我只是在谈论一个简单的文本视图,它从本地数据库中获取信息,所以在这里我没有使用适配器或回收器视图(还没有)。 我试过了:

  • 在新的内容解析器操作后使用数据库帮助器构造函数但不起作用。

  • 在内容提供程序操作后使用 close()。

  • 应用一批操作后的cResolver.notifyChange()。

  • 我尝试使用 LoaderManager,但它似乎只对带有交换光标的适配器有用。

我如何知道我的 CRUD 操作是否正常工作?如果我重新启动我的应用程序,更改就在那里。感谢您对正确方向的任何帮助。

【问题讨论】:

  • 终于成功了!,我实现了一个内容观察器,在 onChange() 中我只是通过填充所有需要它的文本视图来重新查询我的数据库,以便用一个简单的查询/光标和 moveToFirst()

标签: android database sqlite android-contentprovider reload


【解决方案1】:

您的数据库上的任何更改仅反映在您的数据库上。如果您需要在更改后更新文本视图,您需要处理已进行的更改并更新您的视图。 在将视图和数据持久化到数据库后更新视图和数据的另一种方法是使用 LiveData 或任何 observable。

【讨论】:

  • 我明白了,听起来像是要走的路,但你能分享一个 CRUD 操作的例子吗?
  • 感谢您的回复,我设法实现了 am Observer 及其所有方法,现在我遇到了不知道如何刷新光标的问题?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多