在我从包含数组的数据库中获取东西的函数中,我找不到获取数组的方法:
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;
}
答案 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;