Я работаю над приложением для Android, которое использует базу данных SQLite для загрузки данных в список и их отображения.У меня есть класс DatabaseHelper, который имеет дело с методами CRUD для базы данных.Однако я пытаюсь найти конкретные результаты за определенную дату, хотя мой запрос возвращает ожидаемые результаты и заполняет список для возврата, я не могу вернуть этот список в своей основной активности.
Мой запросМетод:
public List<Earthquake>getListByDate(LocalDate dateInput){
SQLiteDatabase db = this.getWritableDatabase();
Cursor data = db.rawQuery("SELECT * FROM " + TABLE_NAME + " WHERE " + PUB_DATE + " = " + "'"+dateInput+"'", null);
Log.e("Cursor", ""+data.getColumnCount());
Log.e("QueryReturnList", ""+QueryReturnList(data));
return QueryReturnList(data);
}
Журнал:
E / Курсор: 12
E / returnList: [объект, объект, объект...]
E / QueryReturnList: [объект, объект, объект ...]
QueryReturnList: (Этот метод создает список объектов из курсора ввода)
private List<Earthquake>QueryReturnList(Cursor data){
List<Earthquake>returnList = new ArrayList<>();
int titleIndex = data.getColumnIndex(TITLE_COL),
descIndex = data.getColumnIndex(DESC_COL),
//... ;
while(data.moveToNext()){
Earthquake e = new Earthquake(
data.getString(titleIndex),
data.getString(descIndex),
//... ;
);
returnList.add(e);
}
Log.e("returnList",""+returnList);
return returnList;
}
Журнал:
E / returnList: [объект, объект, объект ...]
Когда я регистрирую эти результаты, они работают, как и ожидалось, в DatabaseHelper.Найдены правильные результаты, и QueryReturnList возвращает ожидаемый объект списка.
Однако, когда я вызываю этот список из своей основной деятельности и устанавливаю его в новый список, он кажется пустым, когда я его регистрирую (или отлаживаю).
List<Earthquake>earthquakes = mDatabaseHelper.getListByDate(currentDateSelection);
Log.e("earthquakesByDate", ""+earthquakes);
Журнал:
E / returnList: []
E / earthquakesByDate: []
Почему возвращается пустой списоккогда он действительно возвращает и регистрирует заполненный список изначально (в моем DatabaseHelper)?
Примечание: Кажется, он регистрирует «returnList» и «QueryReturnList» несколько раз при работе в неожиданном порядке.Методы не успевают получить все данные и вернуть?