我到目前为止没有谷歌解决方案,以取代我的项目中的列表视图,因为我需要使用与sqlite链接的游标。是否有可能使CursorAdapter在recycleview中设置,就像ListView一样?
为遵循旧的方式: listview.setAdapter(cursorAdapter)
这样,我可以让光标来处理数据,数据库
但现在,recycleview.setAdapter(recycleview.adapter)
它不承认延伸BaseAdapter
所以任何人都可以将适配器帮帮我?
我到目前为止没有谷歌解决方案,以取代我的项目中的列表视图,因为我需要使用与sqlite链接的游标。是否有可能使CursorAdapter在recycleview中设置,就像ListView一样?
为遵循旧的方式: listview.setAdapter(cursorAdapter)
这样,我可以让光标来处理数据,数据库
但现在,recycleview.setAdapter(recycleview.adapter)
它不承认延伸BaseAdapter
所以任何人都可以将适配器帮帮我?
新的RecyclerView
与新的RecyclerView.Adapter
基类一起使用。 所以它不适用于CursorAdapter
。
目前有没有默认实现的RecyclerView.Adapter
可用。
可能随着官方发布,Google会添加它。
是的,我在github中找到了一个解决方案,但官方发布会更好在各方面,我最好等一等。 – machinezhou 2014-10-14 03:34:14
@machinezhou你可以分享github项目吗? – josedlujan 2015-11-15 04:18:45
@josedlujan这里是github项目的链接https://gist.github.com/skyfishjy/443b7448f59be978bc59 – 2015-11-24 14:27:54
自己做起来其实很简单:
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...
}
}
呃,这不是我的好朋友,我的确在github上发现了一个项目,其中cursorAdapter是由开发人员自己实现的。但这并不容易,我不确定它是否会出现一个错误或意外的事情。所以由于我自己的能力和稳定性问题,我宁愿等待正式发布。 – machinezhou 2014-10-31 04:25:18
@machinezhou我不认为他们会为它增加一个正式版本,到目前为止这对我来说一直是完美的工作 – nyx 2015-01-12 12:13:03
我感觉得到的是,由于“不”数据库在UI线程上工作“,自从CursorLoader以来他们一直在推动这些工作。 无论如何,就这里的解决方案而言,继续我见过的其他实现,您可能需要检查移动光标或光标状态导致的潜在错误。到目前为止,我所见过的实现只是在这种情况下抛出异常,这对我来说似乎不太合适。 – Tarkenfire 2015-01-21 12:50:07
见我的答案在这里: http://stackoverflow.com/a/27732748/1371730 尼斯把戏:)的 – nbtk 2015-01-01 17:01:25
可能的复制[在数据库中使用recyclerview](http://stackoverflow.com/questions/26517855/using-the-recyclerview-with-a-database) – e4c5 2015-10-15 06:27:58