可以像在ListView中一样在回收视图中设置CursorAdapter吗?

mac*_*hou 18 android android-support-library android-recyclerview

到目前为止,我还没有谷歌解决方案来替换我的项目中的listview,因为我需要使用与sqlite链接的游标.

老方法如下: listview.setAdapter(cursorAdapter)通过这种方式,我可以获得光标来处理数据库中的数据

但现在,recycleview.setAdapter(recycleview.adapter)它无法识别扩展BaseAdapter的适配器

所以任何人都可以帮我一把

nyx*_*nyx 31

自己实现它实际上非常简单:

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...
      }

}
Run Code Online (Sandbox Code Playgroud)

  • @machinezhou我不认为他们会为它添加官方版本,到目前为止这对我来说一直在完美运作 (2认同)

Gab*_*tti 7

新的RecyclerView工作与新的RecyclerView.Adapter基类.所以它不适用于CursorAdapter.

目前还没有默认实现RecyclerView.Adapter可用.

可能正式发布,谷歌将添加它.