我尝试了许多不同的方法来执行此操作,但是基本上,当我从数据库中获取所有数据时,我想将其存储在数组中,但是当从数据库中读取数据时,我不知道如何遍历索引。这是我获取数据并将其添加到数组的方式:
public void makeObjects(){
i =0;
db.open();
for(int j = 0; j< amount; j++)
{
objarray.add(o);
}
Cursor c = db.fetchAllNotes();
if (c.moveToFirst())
{
do {
objarray.get(i).setid(c.getString(0));
objarray.get(i).settitle(c.getString(1));
objarray.get(i).setinfo(c.getString(2));
objarray.get(i).setlat(c.getString(3));
objarray.get(i).setlon(c.getString(4));
objarray.get(i).setmc(c.getString(5));
i++;
} while (c.moveToNext());
}
db.close();
}
为了进行测试和简化,我在数据库中有两行,我有一个for循环,该循环向数组添加了两个新索引,但是当我将数组的内容打印到
logcat
时,我看到两个索引都具有最后一个数据要从数据库中读取,第二行两次。如何确保第一行输入索引0,第二行输入索引1? 最佳答案
您需要为要引用的数组的每个元素创建一个新对象,而不是让它们全部引用相同的对象。