私はSQliteデータベースに描画可能なID(R.drawable.imageなど)を格納し、後でそのIDを取得してlistViewに入れたいとします。私はBLOBとして画像を保存したくないのですが、私はIDを保存したいだけです。SQliteデータベースのドロウアブルから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に追加しようこれらはListViewで次のようになります:
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(); }
しかし、何らかの理由でアプリケーションがクラッシュしますか?私はこのように私のArrayListにドロワブルのIDを追加することができるよ:
images.add(R.drawable.image);
私は、データベースにそのIDを格納したときに、なぜそれが動作しません、それは次のようになりますので、それを再度取得します:
front_photo INT
、あなたの行を挿入する
images.add("ID from database");
'...何らかの理由でアプリケーションがクラッシュしました...'いくつかの理由で、あなたはlogcatを投稿しませんでした。 –
あなたのフィールド型は文字列で、int、 'front_photo VARCHAR(30)'が必要です。また、評価の代わりに生のString 'R.drawable.bankcard_f'をデータベースに挿入してIDを挿入します。あなたは 'R.drawable.bankcard_f'!=整数 –