java - Android 使用不同的工具

标签 java android cursor loader fragment

我想知道:我正在尝试制作一个作为 ListView 的应用程序,显示数据库中的数据。

这是具体的事情:我希望在修改数据库的事件中, ListView 自动更新,就好像数据库上有一个“监听器”一样......自动上传 ListView 。

根据我读到的内容,我应该使用 loadManager、光标、 fragment (以允许我在 3.0 的早期版本中使用 loadManager)...但由于我是初学者,这对我来说有点难以理解.

我想知道是否有人可以尝试向我深入解释如何一起使用这些工具(我不是要求代码,只是解释:))

谢谢!

编辑:好吧,因为我是新人,而且我很迷茫,我需要更多解释。

不同的步骤是: 1) Activity 在 onCreate() 上创建一个 listView、一个自定义 CursorAdapter 和一个游标。然后仍然在 onCreate 上,它向游标提供 SQLiteDatabase 对象上的标准请求。然后我们将光标影响到适配器,并将适配器影响到listView。

2)当插入事件到来时,我使用SQLiteDatabase的插入函数,然后获取游标上请求的结果,并将其交给列表的CursorAdapter(它会自动更新 ListView 吗?)

3)对于我的customAdapter 来说……我读的源代码、示例和教程越多,我就越迷失。只是明白我必须重写bindView()和newView(),我并没有真正理解它们的目的,加上我想为我的适配器创建许多数据类型的方式......

我觉得自己不太聪明,但我确实尝试过,但我还是迷失了:(

最佳答案

如果您在 ListView 上使用 CursorAdapter,那么一切都为您完成了! http://developer.android.com/reference/android/widget/CursorAdapter.html

编辑:抱歉,我应该解释更多。我读得很快,我想你已经有了 ListView 并且想要保持更新。

当您从数据库获取数据时,无论是通过 ContentResolver.query、SQLiteDatabase.query 还是其他方式,您都会得到一个 Cursor。您需要在 CursorAdapter 中使用它。

您需要子类化 CursorAdapter 并重写 bindView 才能使用 ListView 内光标的数据(因为它不知道您拥有哪些列以及哪些字段映射到哪个 View )。假设您在创建 CursorAdapter 时使用 FLAG_REGISTER_CONTENT_OBSERVER 标志,则每次更新游标中的数据时,列表都应该更新。

关于java - Android 使用不同的工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9697493/

相关文章:

java - 嵌套的 Do-While 循环通过游标进行索引 - 不起作用

python - 在 cursor.description 中避免 None ?

java - Java中synchronized/volatile的变量可见性影响到什么程度

java - 如何从回收 View 中删除通知历史记录?

Android 启动应用程序显示 "Can modify system settings"对话框

java - Android - 调整可缩放 ImageView 顶部的 ImageView 位置

android - SearchView 建议 - 布局宽度 : match_parent

Bluemix 中的 Java DB Web 启动程序

java - libgdx 视口(viewport)中的视口(viewport)更改

android - 如何从数据库中读取 bool 值(使用游标)?