试试这个
Cursor c = myDbHelper.getLvl1Cata();
String[] data;
if (c != null) {
while(c.moveToNext()) {
data = new String[3]; // Note this addition
data[0] = Integer.toString(c.getInt(0));
data[1] = c.getString(1);
data[2] = Integer.toString(c.getInt(2));
Log.e("cc",data[1]);
catalogueData.add(data);
}
c.close();
}
data是一个字符串数组.在原始代码中,您多次将相同的数组添加到catalogueData结构中.您每次都更改了数组内容的值,但它仍然是相同的数组对象.所以你最终得到的catalogueData包含对单个数组的多个引用,并且该数组只能有一个data [0]值:你设置它的最后一件事.
这个答案通过为游标中的每一行使用一个新的不同数组来解决这个问题.