안드로이드 개발 질문/답변
(글 수 45,052)
// 2. item 객체를 list로 저장하기 위한 Query
public void searchAllItem(Vector<Datalist> datalist){
// Vector<Datalist> datalist = new Vector<Datalist>();
Datalist temp = new Datalist();
db = Helper.getReadableDatabase();
Cursor c = db.rawQuery("select * from itemlist", null);
if(c.moveToFirst()){
Log.d(TAG, "selectAllItem");
do{
int i = 1;
temp._id = (int) c.getLong(ID_INDEX);
temp.name = c.getString(i++);
temp.tag_id = c.getString(i++);
temp.category = c.getString(i++);
temp.alarm = c.getString(i++);
temp.day = c.getString(i++);
temp.icon_path = c.getString(i);
Log.d(TAG, "Datalist : " + temp._id + " " + temp.name + " " + temp.tag_id
+ " " + temp.category + " " + temp.alarm + " " + temp.day + " "
+ " " + temp.icon_path );
datalist.addElement(temp);
}while(c.moveToNext());
}
Helper.close();
c.close();
}
현재 그리드뷰에 image를 뿌려주는데 있어서 데이터베이스에 저장되어 있는 정보를 vector 객체에 저장해서 활용하는 방식으로 사용중입니다 . 궁금한게 벡터에 table의 마지막 행 데이터만 모두 저장됩니다. 이미지가 맨처음에는 전부 같아서 잘된지 알고 계속 코딩하다가 데이터 읽어와서 확인하니까 전부 같은 데이터만 읽혀오네요. 도움부탁드립니다..




.....
Datalist temp = new Datalist();
....
이것을 아래와 같이 바꿔보세요
...
Datalist temp = null;
...
do{
....
temp = new Datalist();
....
} while()
왜 그렇냐면..힌트는 C 언어로 하면 Pointer?