我想知道:我正在尝试创建一个以Listview为单位显示数据库数据的应用程序。
这是具体的事情:我希望在修改数据库的事件上,listview会自动更新,就好像数据库上有一个“监听器”......好自动上传listview。
根据我的阅读,我应该使用loadManager,一个游标,片段(允许我使用loadManager for 3.0的前一版本)......但是因为我是初学者,所以我很难理解
我想知道是否有人可以尝试向我解释如何一起使用这些工具(我不是要求代码,只是解释:))
谢谢!
编辑:好的,因为我是新人,我很失落,我需要更多解释。
不同的步骤是: 1)Activity在onCreate()上创建一个listView,一个自定义的CursorAdapter和一个游标。然后仍然在onCreate上,它使用SQLiteDatabase对象上的标准请求提供光标。然后我们将光标影响到适配器,将适配器影响到listView。
2)当插入事件到来时,我使用SQLiteDatabase的insert函数,然后在游标上获取请求的结果,并将其提供给列表的CursorAdapter(它会自动更新列表视图吗?)
3)对于我的customAdapter井...我阅读的内容,示例和教程越多,我就越迷失。只是理解我必须覆盖bindView()和newView(),我没有真正得到他们的目的,加上我想为我的适配器创建许多数据类型的方式......
我觉得我不是很聪明,但我真的很努力,但我还是迷路了:(
答案 0 :(得分:0)
如果您在ListView上使用CursorAdapter,那就完成了! http://developer.android.com/reference/android/widget/CursorAdapter.html
编辑:对不起,我应该解释一下。我读得很快,我觉得你已经有了ListView,并希望保持更新。
当您从数据库获取数据时,无论是通过ContentResolver.query,还是SQLiteDatabase.query或其他内容,您都将获得Cursor。您需要在CursorAdapter中使用它。
您需要继承CursorAdapter并覆盖bindView以使用ListView中游标的数据(因为它不知道您拥有哪些列以及哪些字段映射到哪个视图)。假设您在创建CursorAdapter时使用FLAG_REGISTER_CONTENT_OBSERVER标志,每次光标中的数据更新时,列表都应该更新。