Ich möchte eine Liste von Bildern aus SQLite abrufen.Kann die Symbollänge nicht auflösen
Das ist mein 'getImage()' Methode
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;
}
Das ist mein Java-Klasse, wo ich will meine getImage() -Methode aufrufen. Es gibt jedoch einen Fehler, der besagt, dass die Symbollänge in (data.length) in der BitmapFactory-Zeile nicht aufgelöst werden kann. Hat jemand eine Idee, wie man das löst? Vielen Dank.
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);
Ihre 'data' ein list.get (0) .length für get Bild ist 'List', müssen Sie entweder' data.get (x) 'von sort ausführen, um das Array zu erhalten, bevor Sie es verwenden. – LightYearsBehind
Wenn Sie Bilder in einer Datenbank speichern. Es ist keine empfohlene Strategie, da dies zu langen Anruf führt, die Ihre App zu ANRs führen. Ändern Sie Ihre Speichermöglichkeiten! – Xenolion