Как получить данные c помощью Cursor из базы данных в RecyclerView

У меня есть готовая база. Я ранее получал данные, используя ListView и SimpleCursorAdapter. Теперь же хочу передать список в RecyclerView, но ничего не выводится

MainActivity

public class MainActivity extends AppCompatActivity {

Toolbar toolbar;
FloatingActionButton fabMain;

RecyclerView recyclerView;
RecyclerView.LayoutManager layoutManager;
RecyclerAdapter recyclerAdapter;
Cursor cursor;
DataBase dataBase = new DataBase(this);
SQLiteDatabase sqLiteDatabase;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    recyclerView = findViewById(R.id.rv_main);
    layoutManager = new LinearLayoutManager(this);
    recyclerView.setLayoutManager(layoutManager);
    toolbar = findViewById(R.id.toolbar_main);
    setSupportActionBar(toolbar);

    //переход на активити для добавления
    fabMain = findViewById(R.id.fab_main);
    fabMain.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent intent  = new Intent(MainActivity.this, AddActivity.class);
            startActivity(intent);

        }
    });

    sqLiteDatabase = dataBase.getWritableDatabase();
    cursor = sqLiteDatabase.query(DataBase.DATABASE_TABLE, null, null, null, null, null, null);
    recyclerAdapter = new RecyclerAdapter(MainActivity.this, cursor, sqLiteDatabase);
    recyclerView.setAdapter(recyclerAdapter);
}
}

Adapter

public class RecyclerAdapter extends RecyclerView.Adapter<RecyclerAdapter.ViewHolder> {
private Context context;
private LayoutInflater inflater;
private Cursor cursor;
private SQLiteDatabase sqLiteDatabase;

public RecyclerAdapter(Context context, Cursor cursor, SQLiteDatabase sqLiteDatabase) {
    this.context = context;
    this.cursor = cursor;
    this.sqLiteDatabase = sqLiteDatabase;
}

@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View view = inflater.inflate(R.layout.item_task, parent, false);
    return new ViewHolder(view);
}

@Override
public void onBindViewHolder(ViewHolder holder, int position) {
    sqLiteDatabase = new DataBase(context).getWritableDatabase();
    holder.tvTitle.setText(cursor.getColumnIndex(DataBase.KEY_TITLE));
    holder.tvText.setText(cursor.getColumnIndex(DataBase.KEY_TEXT));

}

@Override
public int getItemCount() {
    return cursor.getCount();
}


public class ViewHolder extends RecyclerView.ViewHolder {
    TextView tvTitle, tvText;
    public ViewHolder(@NonNull View itemView) {
        super(itemView);
        tvTitle = itemView.findViewById(R.id.tv_title);
        tvText = itemView.findViewById(R.id.tv_text);
    }
}
}

Мне кажется у меня ошибка в адаптере, а именно в onBindViewHolder

P.S сильно не ругайтесь)


Ответы (0 шт):