Android GridView与数据库

时间:2014-01-30 08:32:56

标签: 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]);
    }
    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

2 个答案:

答案 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