例如,我有这张表:
我使用以下方法从该表中进行查询:
public ArrayList<ArrayList<String>> getAllViandCategory() {
ArrayList<ArrayList<String>> data2 = new ArrayList<ArrayList<String>>();
ArrayList<String> data = new ArrayList<String>();
// Select All Query
String selectQuery = "SELECT * FROM " + "tbl_viand_category";
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
if (cursor.moveToFirst()) {
do {
data.add(cursor.getString(0));
data.add(cursor.getString(1));
data2.add(data);
} while (cursor.moveToNext());
}
return data2;
}
我没有得到所需的输出。我得到了这个:[1,Fish,2,Vegetables,3,Meat,4,Rice,5,Etc]
而不是[[1,Fish],[2,Vegetables],[3,Meat],[4,Rice],[5,Etc]]
答案 0 :(得分:0)
您拥有的是列表清单。外部列表包含具有列表的对象。
// Code to add a list object into outer list.
data2.add(data);
您会注意到您只创建了一次数据对象。所以基本上同一个对象一次又一次地插入到data2中。
您需要为每次迭代创建一个新的数据对象。
// New Code
if (cursor.moveToFirst()) {
do {
data = new ArrayList<String>();
data.add(cursor.getString(0));
data.add(cursor.getString(1));
data2.add(data);
} while (cursor.moveToNext());
}
希望有所帮助:D