我尝试了许多不同的方法来执行此操作,但是基本上,当我从数据库中获取所有数据时,我想将其存储在数组中,但是当从数据库中读取数据时,我不知道如何遍历索引。这是我获取数据并将其添加到数组的方式:

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?

最佳答案

您需要为要引用的数组的每个元素创建一个新对象,而不是让它们全部引用相同的对象。

08-07 00:58