2014-01-30 64 views
0

我有問題,我的網格視圖。我想將圖像存儲在表格中,然後在網格視圖中顯示它們。的Android 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

+1

發表您的logcat的。 –

+0

我猜的錯誤是不** **發現嘗試 –

+0

的Integer.parseInt(「FF0000」,16)資源,你需要解析爲一個十六進制INT – gvmani

回答

0

至於你說要保存R.drawable.ic_work爲字符串。

問題是您正在使用imageView.setImageResource(ints[position]);R.drawable.ic_work是字符串。

解決方案是不是存儲R.drawable.ic_workString店作爲int,因爲你的R.drawable.ic_work代表以int ID

+0

我已將我的字符串更改爲資源的int引用。所以現在我不是存儲R.drawable.ic_work,而是存儲2130837514.它的工作原理。 – Dominik

+0

祝賀和歡呼:) –

1

在大多數情況下,你的設備將無法爲單個原始圖像加載到內存中獨自離開的列表。您需要在顯示圖像之前縮放圖像。