我无法从我的数据库android中检索数组

时间:2017-09-01 18:01:34

标签: android arrays database sqlite android-database

在我从包含数组的数据库中获取东西的函数中,我找不到获取数组的方法:

public Meals getMeals(int id) {
    SQLiteDatabase db = this.getReadableDatabase();

    Cursor cursor = db.query(
                        TABLE_MEALS, 
                        new String[]{KEY_ID, KEY_TITLE, KEY_DESC, KEY_CTRGRY, KEY_PIC, KEY_INGRDNTS}, KEY_ID + "=?",
                        new String[]{String.valueOf(id)}, null, null, null, null);
    if (cursor != null)
        cursor.moveToFirst();

    Meals Meal = new Meals(Integer.parseInt(cursor.getString(0)),
            cursor.getString(1), cursor.getString(2), cursor.getString(3), cursor.getInt(4), cursor./**placeholder for equivilant of getInt/String but for List<String>*/);
    // return Meals
    return Meal;
}

1 个答案:

答案 0 :(得分:0)

您必须迭代光标,然后获取每行的属性值。您可以使用以下内容:

if (cursor != null) {
    cursor.moveToFirst();
}

ArrayList<Meal> meals = new ArrayList();
while (!cursor.isAfterLast()) {
    Meal meal = new Meal();
    meal.setId(cursor.getInt(cursor.getColumnIndex("id")));
    meal.setTitle(cursor.getString(cursor.getColumnIndex("title")));
    ... // set rest fields
    meals.add(meal);
}
return meals;