title: Display SQLite data in RecyclerView
body: <p>I search a lot, but I didn't find any step-by-step guides on how to display SQLite data in RecyclerView. Can anyone explain to me how can I do this?</p>
  
  <p>My <strong>DataBaseAdapter :</strong></p>
  
  <pre><code>public class DataBaseAdapter {
  
  DataBaseHelper helper;
  
  public DataBaseAdapter(Context context) {
      helper = new DataBaseHelper(context);
      }
  
  public long insertData(String name, String card, String code) {
  
      SQLiteDatabase db = helper.getWritableDatabase();
      ContentValues contentValues = new ContentValues();
      contentValues.put(DataBaseHelper.NAME, name);
      contentValues.put(DataBaseHelper.CARD, card);
      contentValues.put(DataBaseHelper.CODE, code);
      long id = db.insert(DataBaseHelper.TABLE_NAME, null, contentValues);
      return id;
  }
  
  public String getData(String name){
      //select _id,Name,Card,Code
      SQLiteDatabase db = helper.getWritableDatabase();
      String[] columns = {DataBaseHelper.NAME, DataBaseHelper.CARD, DataBaseHelper.CODE};
      Cursor cursor = db.query(DataBaseHelper.TABLE_NAME, columns,DataBaseHelper.NAME+" = '"+name+"'", null, null, null, null);
      StringBuffer buffer = new StringBuffer();
      while (cursor.moveToNext()) {
          int index2 = cursor.getColumnIndex(DataBaseHelper.NAME);
          int index3 = cursor.getColumnIndex(DataBaseHelper.CARD);
          int index4 = cursor.getColumnIndex(DataBaseHelper.CODE);
  
          String personName = cursor.getString(index2);
          String card = cursor.getString(index3);
          String code = cursor.getString(index4);
          buffer.append(name + " " + card + " " + code + "\n");
  
      }
      return buffer.toString();
  }
  
  public String getAllData() {
      //select _id,Name,Card,Code
      SQLiteDatabase db = helper.getWritableDatabase();
      String[] columns = {DataBaseHelper.UID, DataBaseHelper.NAME, DataBaseHelper.CARD, DataBaseHelper.CODE};
      Cursor cursor = db.query(DataBaseHelper.TABLE_NAME, columns, null, null, null, null, null);
      StringBuffer buffer = new StringBuffer();
      while (cursor.moveToNext()) {
          int index1 = cursor.getColumnIndex(DataBaseHelper.UID);
          int index2 = cursor.getColumnIndex(DataBaseHelper.NAME);
          int index3 = cursor.getColumnIndex(DataBaseHelper.CARD);
          int index4 = cursor.getColumnIndex(DataBaseHelper.CODE);
  
          int cid = cursor.getInt(index1);
          String name = cursor.getString(index2);
          String card = cursor.getString(index3);
          String code = cursor.getString(index4);
          buffer.append(cid + " " + name + " " + card + " " + code + "\n");
      }
      return buffer.toString();
  
  }
  
  static class DataBaseHelper extends SQLiteOpenHelper {
      private static final String DATABASE_NAME = "cardsdatabase";
      private static final String TABLE_NAME = "CARDSTABLE";
      private static final String UID = "_id";
      private static final String NAME = "Name";
      private static final String CARD = "Card";
      private static final String CODE = "Code";
      private static final int DATABASE_VERSION = 1;
      private static final String CREATE_TABLE = "create table "
              + TABLE_NAME + " (" + UID
              + " integer primary key autoincrement, " + NAME
              + " text not null, " + CARD + " ext not null, " + CODE
              + " text not null);";
      private static final String DROP_TABLE = "DROP TABLE IF EXISTS "
              + TABLE_NAME;
      private Context context;
  
      public DataBaseHelper(Context context) {
  
          super(context, DataBaseHelper.DATABASE_NAME, null, DataBaseHelper.DATABASE_VERSION);
          this.context = context;
          Toast toast = Toast.makeText(context, "constructor called", Toast.LENGTH_LONG);
          toast.show();
      }
  
      @Override
      public void onCreate(SQLiteDatabase db) {
          //CREATE TABLE CARDSTABLE(_id INTEGER PRIMARY KEY AUTOINCREMENT,name VARCHAR(255));
          try {
              db.execSQL(CREATE_TABLE);
              Toast toast = Toast.makeText(context, "onCreate called", Toast.LENGTH_LONG);
              toast.show();
  
          } catch (SQLException e) {
              Toast toast = Toast.makeText(context, "" + e, Toast.LENGTH_SHORT);
              toast.show();
          }
  
  
      }
  
      @Override
      public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
  
          try {
              Toast toast = Toast.makeText(context, "onUpgrade called", Toast.LENGTH_LONG);
              toast.show();
              db.execSQL(DROP_TABLE);
              onCreate(db);
          } catch (SQLException e) {
              Toast toast = Toast.makeText(context, "" + e, Toast.LENGTH_LONG);
              toast.show();
          }
  
      }
  }
  </code></pre>
  
  <p>Your answers will be really helpful for me, thanks</p>
  
  <p><strong>EDIT:</strong></p>
  
  <p><strong>DataBean class :</strong></p>
  
  <pre><code>public class DataBean {
  //private variables
  int _id;
  String _name;
  String _card_value;
  String _card_code;
  
  // Empty constructor
  public DataBean(){
  
  }
  // constructor
  public DataBean(int id, String name, String _card_value, String _card_code){
      this._id = id;
      this._name = name;
      this._card_value = _card_value;
      this._card_code = _card_code;
  }
  
  // constructor
  public DataBean(String name, String _card_value, String _card_code){
      this._name = name;
      this._card_value = _card_value;
      this._card_code = _card_code;
  }
  // getting ID
  public int getID(){
      return this._id;
  }
  
  // setting id
  public void setID(int id){
      this._id = id;
  }
  
  // getting name
  public String getName(){
      return this._name;
  }
  
  // setting name
  public void setName(String name){
      this._name = name;
  }
  
  // getting CardValue
  public String getCardValue(){
      return this._card_value;
  }
  
  // setting CardValue
  public void setCardValue(String _card_value){
      this._card_value = _card_value;
  }
  // getting CardCode
  public String getCardCode(){
      return this._card_code;
  }
  
  // setting CardCode
  public void setCardCode(String _card_code){
      this._card_code = _card_code;
  }
  </code></pre>
  
  <p>}</p>
  
  <p>These lines i add to my <strong>DataBaseAdapter</strong>:</p>
  
  <pre><code>public DataBean getDat(String name){
          DataBean bean=null;
          SQLiteDatabase db=this.getReadableDatabase();
          String[] columns = {DataBaseHelper.NAME, DataBaseHelper.CARD, DataBaseHelper.CODE};
          Cursor cursor = db.query(DataBaseHelper.TABLE_NAME, columns,DataBaseHelper.NAME+" = '"+name+"'", null, null, null, null);
          if (cursor.moveToFirst()) {
              int index = cursor.getColumnIndex(DataBaseHelper.UID);
              int index2 = cursor.getColumnIndex(DataBaseHelper.NAME);
              int index3 = cursor.getColumnIndex(DataBaseHelper.CARD);
              int index4 = cursor.getColumnIndex(DataBaseHelper.CODE);
              int id = cursor.getInt(index);
              String personName = cursor.getString(index2);
              String card = cursor.getString(index3);
              String code = cursor.getString(index4);
              bean = new DataBean(id, name, card, code);
          }
          return bean;
      }
      public List&lt;DataBean&gt; gelAllDat(){
          List&lt;DataBean&gt; list = new ArrayList&lt;&gt;();
          SQLiteDatabase db=this.getReadableDatabase();
          String[] columns = {DataBaseHelper.NAME, DataBaseHelper.CARD, DataBaseHelper.CODE};
          Cursor cursor = db.query(DataBaseHelper.TABLE_NAME, columns,DataBaseHelper.NAME, null, null, null, null);
          while (cursor.moveToNext()) {
              int index = cursor.getColumnIndex(DataBaseHelper.UID);
              int index2 = cursor.getColumnIndex(DataBaseHelper.NAME);
              int index3 = cursor.getColumnIndex(DataBaseHelper.CARD);
              int index4 = cursor.getColumnIndex(DataBaseHelper.CODE);
              int cid = cursor.getInt(index);
              String name = cursor.getString(index2);
              String card = cursor.getString(index3);
              String code = cursor.getString(index4);
              DataBean bean = new DataBean(cid, name, card, code);
              list.add(bean);
          }
          return list;
  
      }
  </code></pre>
  
  <p>And last question? I need to change my <strong>insert data</strong> in <strong>DataBaseAdapter</strong>?</p>
  
  <p><strong>EDIT 2:</strong></p>
  
  <p>I added this code to my DataBaseAdapter:</p>
  
  <pre><code>public List&lt;DataBean&gt; getAllCards(){
      List&lt;DataBean&gt; list=new ArrayList&lt;&gt;();
      String query = "SELECT  * FROM " + DataBaseHelper.TABLE_NAME;
      SQLiteDatabase db = helper.getReadableDatabase();
      Cursor cursor = db.rawQuery(query, null);
      while (cursor.moveToNext()) {
          //int index = cursor.getColumnIndex(DataBaseHelper.UID);
          int index2 = cursor.getColumnIndex(DataBaseHelper.NAME);
          int index3 = cursor.getColumnIndex(DataBaseHelper.CARD);
          int index4 = cursor.getColumnIndex(DataBaseHelper.CODE);
          //int cid = cursor.getInt(index);
          String name = cursor.getString(index2);
          String card = cursor.getString(index3);
          String code = cursor.getString(index4);
          DataBean bean = new DataBean(name, card, code);
          list.add(bean);
      }
  
      return list;
  
  }
  
  public DataBean getData(String name) {
      //select _id,Name,Card,Code
      SQLiteDatabase db = helper.getReadableDatabase();
      String[] columns = {DataBaseHelper.NAME, DataBaseHelper.CARD, DataBaseHelper.CODE};
      DataBean bean=null;
      Cursor cursor = db.query(DataBaseHelper.TABLE_NAME, columns, DataBaseHelper.NAME + " = '" + name + "'", null, null, null, null);
      StringBuffer buffer = new StringBuffer();
      while (cursor.moveToNext()) {
          int index2 = cursor.getColumnIndex(DataBaseHelper.NAME);
          int index3 = cursor.getColumnIndex(DataBaseHelper.CARD);
          int index4 = cursor.getColumnIndex(DataBaseHelper.CODE);
  
          String personName = cursor.getString(index2);
          String card = cursor.getString(index3);
          String code = cursor.getString(index4);
          //buffer.append(name + " " + card + " " + code + "\n");
          bean = new DataBean( name,card, code);
  
      }
      return bean;
  }
  </code></pre>