2017-08-25 30 views
-2

我想從SQLite中檢索圖像列表。無法解析符號長度

這是我的'的getImage()方法

public List<byte[]> getImage(int i) { 
    List<byte[]> list = new ArrayList<>(); 
    String selectImage = "SELECT VocabImage FROM Vocab WHERE VocabTopic =" + i; 
    Cursor c = database.rawQuery(selectImage, null); 
    if(c.moveToFirst()) 
     do{ 
      list.add(c.getBlob(c.getColumnIndex("VocabImage"))); 
     }while(c.moveToNext()); 

    c.close(); 
    return list; 
} 

這是我的java類,我想打電話給我的getImage()方法。但有一個錯誤,說它無法解析BitmapFactory行中(data.length)中的符號'length'。任何人有任何想法如何解決這個問題?謝謝。

Intent intent = getIntent(); 

int topicId = intent.getIntExtra("SelectedTopicId", 1); 

databaseAccess.open(); 

List<byte[]>data = databaseAccess.getImage(topicId); 

Bitmap image = BitmapFactory.decodeByteArray(data, 0, data.length); 

imageView.setImageBitmap(image); 
+1

你'data'是'List',你可以在使用之前做'sort.get(x)'來得到數組。 – LightYearsBehind

+0

如果將圖像存儲在數據庫中。它不是一個很好的策略,因爲它會導致您的應用程序導致ANRs長時間通話。修改您的存儲方式! – Xenolion

回答

1
Bitmap image = BitmapFactory.decodeByteArray(data, 0, data.length); 

變化

Bitmap image = BitmapFactory.decodeByteArray(data.get(position), 0, data.get(position).length); // pass position for which you want length. 
+0

我改變了,它說我的第一個參數(數據)是錯誤的。 – chernting

+0

看到我的編輯..更改您的數據data.get(位置) – Android

+0

如果它運行良好請接受此答案。 – Android

0

你需要改變這樣的:list.get(0)。長度爲獲取圖像索引爲0