Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android GridView与数据库_Android_Database_Layout_Gridview - Fatal编程技术网

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。它是有效的。