Я сохранил данные в базе данных SQLite. Мне нужно отобразить эти данные из базы данных в RecyclerView. Но в первый раз, когда данные извлекаются и отображаются в RecyclerView, они извлекаются в Sequence, как хранятся в базе данных и устанавливаются в 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();
}
Как решить эту проблему?
ваша проблема решена?
Вы должны добавить в свой адаптер эту функцию для изменения данных и вызова notifyDataSetChanged.
Так что добавьте это в свой адаптер
public void setData(ArrayList<ReservationEntry> dbList){
this.yourListData = dbList;
notifyDataSetChanged();
}
И используйте это так
private void readDatabaseReservation(final ArrayList<ReservationEntry> dbList) {
adapter.setData(dbList);
}
Надеюсь, это поможет. для получения дополнительной информации добавьте код адаптера
Возможно, данные обновляются. Вы можете добавить заказ по предложению в запросе sql. Он не изменит порядок, пока не будут добавлены новые данные или не обновлен порядок столбцов.