これを行うためにさまざまな方法を試しましたが、基本的にデータベースからすべてのデータを取得するときに配列に格納したいのですが、データがデータベースから読み取られるときにインデックスを反復処理する方法がわかりません。データを取得して配列に追加する方法は次のとおりです。
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();
}
テストと単純化のために、データベースに 2 つの行があり、配列に 2 つの新しいインデックスを追加する for ループがありますが、配列の内容を にlogcat
出力すると、両方のインデックスに最後のデータがあることがわかりますデータベースから 2 行目を 2 回読み取ります。行 1 がインデックス 0 に入り、行 2 がインデックス 1 に入るようにするにはどうすればよいですか?