我想在我的sqlite数据库中存储可绘制的ID(例如r.drawable.image(,然后以稍后将ID检索以放入listView中。我不想将图像保存为斑点,我只想存储ID。
现在,我创建了一个这样的表格,在其中存储可绘制的ID:
db.execSQL("CREATE TABLE cards n" +
"(n" +
"card_id INT PRIMARY KEY, n" +
"cpr VARCHAR(11) NOT NULL,n" +
"card_type VARCHAR(30), n" +
"front_photo VARCHAR(30), back_photo BLOB,n" +
"FOREIGN KEY (cpr) REFERENCES users(cpr)n" +
")n" +
";n");
db.execSQL("INSERT INTO cards (card_id , cpr, card_type, front_photo) VALUES(1, '170492-1802','Rejsekort', 'R.drawable.rejsekort_f');"
);
db.execSQL("INSERT INTO cards (card_id , cpr, card_type, front_photo) VALUES(2, '170492-1802','Bank Card', 'R.drawable.bankcard_f');"
);
db.execSQL("INSERT INTO cards (card_id , cpr, card_type, front_photo) VALUES(3, '170492-1802','Drivers Licence', 'R.drawable.bankcard_f');"
);
db.execSQL("INSERT INTO cards (card_id , cpr, card_type, front_photo) VALUES(4, '170492-1802','Sundhedskort', 'R.drawable.bankcard_f');"
);
db.execSQL("INSERT INTO cards (card_id , cpr, card_type, front_photo) VALUES(5, '170492-1802','Ungdomskort', 'R.drawable.bankcard_f');"
);
然后,我尝试获取该表的所有ID并将它们添加到整数ArrayList中,以便我可以在这样的列表视图中显示它们:
ArrayList<Integer> images=new ArrayList<Integer>();
public void addImagesToListview() {
DBHelper dbHelper = new DBHelper(MainActivity.this);
db = dbHelper.getReadableDatabase();
Cursor getImages = db.rawQuery("Select front_photo from cards", null);
getImages.moveToFirst();
while(!getImages.isAfterLast()) {
String image = getImages.getString(0);
int image2 = Integer.parseInt(image);
images.add(image2);
getImages.moveToNext(); }
但是由于某种原因,应用程序崩溃了吗?我可以在这样的阵列列表中添加Drawables的ID:
images.add(R.drawable.image);
所以当我只存储该ID并再次检索时,为什么它不起作用,因此看起来像这样:
images.add("ID from database");
将数据库更改为
front_photo INT
插入行时,插入评估的ID,而不是代表它的字符串。
int photoID = R.drawable.rejsekort_f;
db.execSQL("INSERT INTO cards (card_id , cpr, card_type, front_photo) VALUES(1, '170492-1802','Rejsekort', " + photoID + ");";