RecyclerViewCursorAdapter

Additional

Language
Java
Version
N/A
Created
Dec 10, 2015
Updated
Jul 4, 2016 (Retired)
Owner
androidessence
Contributor
Adam McNeilly (AdamMc331)
1
Activity
Badge
Generate
Download
Source code
APK file

Advertising

Implementation

In the same way that RecyclerView.Adapter requires a generic RecyclerView.ViewHolder, this adapter uses a RecyclerViewCursorViewHolder. It extends from RecyclerView.ViewHolder; The only difference is that it must implement a bindCursor() method which helps simplify the process of binding Cursor data to a ViewHolder object.

If you are using a single ViewHolder for your Adapter (which is all that is easily supported in the current version), you can make use of the setupCursorAdapter() function to easily implement the newView and bindView methods of the underlying CursorAdapter. All you need to do is specify the initial values for the CursorAdapter, and the layout resource for the root view of your ViewHolder. See the sample project for an example.

In onCreateViewHolder, you can return a ViewHolder that is defined by the view returned by mCursorAdapter.newView(). In onBindViewHolder(), it is your responsibility to make sure the CursorAdapter's Cursor is moved to the proper position, and that the ViewHolder is set prior to calling bindView in the CursorAdapter. Again, the sample project has snippets that do all of this.

Use the swapCursor() function to exchange the data inside the Adapter. This can be done using a CursorLoader, or using the result of any queries you run manually.

Currently there is support to easily control a RecyclerViewCursorAdapter that uses a single ViewHolder. However, nothing restricts the user from using multiple View types; Just don't use

setupCursorAdapter() and instead instantiate the CursorAdapter in your own way and adjust onBindViewHolder and onCreateViewHolder accordingly.