Android GridView与数据库
我的网格视图有问题。我想在表格中存储图像,然后在网格视图中显示它们Android GridView与数据库,android,database,layout,gridview,Android,Database,Layout,Gridview,我的网格视图有问题。我想在表格中存储图像,然后在网格视图中显示它们 // 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]); } i
// 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;
}
//图像适配器
String[]strings=db.getPictures();
整数[]整数=新整数[strings.length];
for(int i=0;i
当我运行我的应用程序时,它会在启动时崩溃。我保存的单个字符串类似于
R.drawable.ic\u work
在大多数情况下,您的设备将无法将单个原始图像加载到内存中,更不用说列表了。在显示图像之前,需要缩放图像 正如您所说,您正在将R.drawable.ic\u工作
保存为字符串
问题是您正在使用imageView.setImageResource(ints[position])代码>而R.drawable.ic\u工作
是字符串
解决方案是将R.drawable.ic_work
存储为String
将其存储为int
,因为您的R.drawable.ic_work
表示为int ID我猜错误是Resource not foundtry Integer.parseInt(“ff0000”,16),您需要解析为十六进制整数,日志显示java.lang.NumberFormatException:无效int:“R.drawable.ic_job”我已将字符串更改为对资源的int引用。所以现在我存储的不是R.drawable.ic_工作,而是2130837514。它是有效的。