У меня есть проблема с моим приложением, когда иногда Arraylist отображается в обзоре переработчика, а иногда нет.Arraylist заполняется из курсора DB SQLLite.
public List<OrderItem> getAllOrders(String vendor) {
List<OrderItem> ordersList = new ArrayList<>();
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.query(
LocalOrderQty.TABLE_NAME,
new String[]{"*"},
LocalOrderQty.COLUMN_VENDOR + " = ?",
new String[]{vendor},
null,
null,
null);
Log.d(TAG, "Vendor name: " + vendor + " Cursor size " + cursor.getCount());
if (cursor.moveToFirst()) {
do { //(String barcode, String imageURL, String name, Integer quantity, String unit, String vendor)
ordersList.add(new OrderItem(
cursor.getString(1),
cursor.getString(4),
cursor.getString(2),
cursor.getInt(3),
cursor.getString(5),
cursor.getString(0)
));
Log.d(TAG, "cursor1getstring: " + cursor.getString(1));
} while (cursor.moveToNext());
}
cursor.close();
db.close();
return ordersList;
}
Это мой logcat:
D/DatabaseHelper: Vendor name: ABC Cursor size 5
D/DatabaseHelper: cursor1getstring: 9559001380099
cursor1getstring: 9559001380105
cursor1getstring: 9559001380792
cursor1getstring: 9559001380815
А потом, когда он не работает, это logcat:
D/DatabaseHelper: Vendor name: ABC Cursor size 0
Несмотря на то, что когда я открываю файл базы данных из браузера SQL, данные определенно присутствуют и они заполняются.
Что-то нужно улучшить в моем коде?
Этопроблема случайная, иногда появляется список, иногда 0.