Последовательность данных из SQLite изменилась при отображении данных в RecyclerView - PullRequest
0 голосов
/ 13 ноября 2018

Я сохранил данные в базе данных SQLite. Мне нужно отобразить эти данные из базы данных в RecyclerView. Но в первый раз, когда данные извлекаются и отображаются в RecyclerView, они извлекаются в последовательности, как хранятся в базе данных и устанавливаются в Recyclerview. Когда я пытаюсь получить те же данные из базы данных и установите в RecyclerView автоматическое изменение последовательности.
Это код для извлечения данных из SQLite базы данных

public ArrayList<ReservationEntry> getDbReservation(){
        SQLiteDatabase db = this.getWritableDatabase();
        String query="SELECT * FROM "+ RESERVATIONS;
        Cursor c=db.rawQuery(query,null,null);
        ArrayList<ReservationEntry> reserveList=new ArrayList<>();
        if(c.moveToFirst()){
            do{
                ReservationEntry entry=new ReservationEntry();
                entry.setName(c.getString(0));
                entry.setNoOfPeople(c.getString(1));
                entry.setTime(c.getString(2));
                entry.setDate(c.getString(3));
                entry.setBirthday(c.getString(4));
                entry.setAniversary(c.getString(5));
                reserveList.add(entry);
            }while (c.moveToNext());
        }
        return reserveList;

    }  

Это код для установки RecyclerViewAdapter

private void readDatabaseReservation(final ArrayList<ReservationEntry> dbList) {
        adapter=newReservationAdapter(dbList,getActivity().getApplicationContext());
        recyclerView.setAdapter(adapter);
        adapter.notifyDataSetChanged();
}  

Как решить эту проблему?

1 Ответ

0 голосов
/ 13 ноября 2018

Вы должны добавить свой адаптер этой функции, чтобы изменить данные и вызвать notifyDataSetChanged.

Так что добавьте это в свой адаптер

public void setData(ArrayList<ReservationEntry> dbList){
  this.yourListData = dbList;
  notifyDataSetChanged();
}

И используйте его вот так

private void readDatabaseReservation(final ArrayList<ReservationEntry> dbList) {
    adapter.setData(dbList);
} 

Надеюсь, это поможет.для более подробной информации добавьте свой код адаптера

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...