I didn\'t google out a solution till now to replace listview in my project, because I need to use the cursor linked with the sqlite.
Old way as followed:
listview.
Implementing it yourself is actually quite simple:
public class CursorAdapter extends RecyclerView.Adapter<ViewHolder>{
Cursor dataCursor;
@Override
public int getItemCount() {
return (dataCursor == null) ? 0 : dataCursor.getCount();
}
public void changeCursor(Cursor cursor) {
Cursor old = swapCursor(cursor);
if (old != null) {
old.close();
}
}
public Cursor swapCursor(Cursor cursor) {
if (dataCursor == cursor) {
return null;
}
Cursor oldCursor = dataCursor;
this.dataCursor = cursor;
if (cursor != null) {
this.notifyDataSetChanged();
}
return oldCursor;
}
private Object getItem(int position) {
dataCursor.moveToPosition(position);
// Load data from dataCursor and return it...
}
}
The new RecyclerView
works with a new RecyclerView.Adapter
base class.
So it doesn't work with the CursorAdapter
.
Currently there is no default implementation of RecyclerView.Adapter
available.
May be with the official release, Google will add it.