0

我一直在阅读http://developer.android.com/resources/articles/live-folders.htmlhttp://developer.android.com/reference/android/provider/LiveFolders.htmlhttps://android .googlesource.com/platform/packages/apps/Contacts/+/donut-release/src/com/android/contacts/ContactsLiveFolders.java

但我想将我的应用程序(这是一个列表视图)扩展到一个活动文件夹。这将是一个不错的选择。如何使用我的 listadapter 作为光标?这可能吗?除此之外,我如何设置我的 Listadapter 提供的类似 getView?是我的 listadapter 继承的 Baseadapter,能够成为 livefolder 需要的游标吗?

4

1 回答 1

0

是的,这是可能的。但是你需要一个 ContentProvider。虽然 ContentProvider 通常由一些 sql 数据库支持,但这不是必需的。您可以从任何来源获取 ContentProvider 的 query() 方法中的数据,只要将其作为光标返回即可。如果您没有数据库游标,则可以将数据包装在 MatrixCursor 中并返回 MatrixCursor。我有这样一个 query() 方法的实现,它通过返回一个 MatrixCursor 来工作。

ContentProvider 需要由数据库查询备份是一个常见的误解。最好将 ContentProvider 理解为指定 4 种不同(CRUD)方法的合同,这些方法采用某些类型的参数并返回某些类型。

此外,您可以在这 4 种方法中进行不同的查询,并根据 Uri 切换它们。

像这样使用 ContentProviders 可以使用任何数据源并对该数据源执行任何操作,只要您遵守 ContentProvider 类指定的合同。这使得它们非常强大。

于 2012-05-12T21:42:09.183 回答