我的网格视图出现问题。我想将图像存储在表格中,然后在网格视图中显示它们。
// ImageAdapter
String[] strings = db.getPictures();
Integer[] ints = new Integer[strings.length];
for (int i=0; i < strings.length; i++) {
ints[i] = Integer.parseInt(strings[i]);
}
imageView.setImageResource(ints[position]);
return imageView;
//DatabaseHandler
public String[] getPictures(){
int i=0;
String selectQuery = "SELECT pictureName FROM Category";
SQLiteDatabase db = this.getReadableDatabase();
Cursor c = db.rawQuery(selectQuery, null);
int rowsNumber=c.getCount();
String[] mThumbIds;
mThumbIds= new String[rowsNumber];
if (c.moveToFirst()) {
do {
mThumbIds[i]=c.getString(0);
i++;
} while (c.moveToNext());
}
return mThumbIds;
}
当我运行我的应用程序时,它会在开始时粉碎。单个字符串我保存为R.drawable.ic_work
答案 0 :(得分:1)
在大多数情况下,您的设备无法将单个原始图像加载到内存中而只留下列表。您需要在显示图像之前缩放图像。
答案 1 :(得分:0)
正如您所说,您将R.drawable.ic_work
保存为字符串。
问题您使用imageView.setImageResource(ints[position]);
而R.drawable.ic_work
是字符串。
解决方案不是将R.drawable.ic_work
存储为String
,而是将其存储为int
,因为您的R.drawable.ic_work
代表int ID
。