Ich kann das Bild, das als Blob gespeichert wird, nicht aus der SQLite-Datenbank abrufen. Ich benutze Parcel. Unten ist mein Code. Ich möchte das Bild in der imageView namens galerie_foto_retrieve
anzeigen. Jetzt zeigt die App einen Fehler an. Und ich kann es nicht laufen. Ich bin Anfänger in Android, also haben Sie irgendwelche Ideen, was ich falsch mache. Ich wäre dankbar für jede Hilfe!Android- Abrufen von Bild von SQLite mit Parcelable
DataProvider-
private byte[] byteArray;
public DataProvider(byte[] byteArray)
this.byteArray=byteArray;
protected DataProvider(Parcel in)
{
byteArray = new byte[in.readInt()];
in.readByteArray(byteArray);
}
@Override
public void writeToParcel(Parcel dest, int flags)
{
dest.writeInt(byteArray.length);
dest.writeByteArray(byteArray);
}
DataListActivity
if (cursor.moveToFirst())
{
do {byte[] byteArray;
byteArray = cursor.getBlob(210);
DataProvider dataProvider = new DataProvider(byteArray);
}while (cursor.moveToNext());
}
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent intent = new Intent(DataListActivity.this, RetrieveData.class);
intent.putExtra("data", (DataProvider) listDataAdapter.getItem(position));
startActivity(intent);
}
});
Abrufen von Daten
byte[] byteArray;
ImageView galerie_foto_retrieve;
Bundle bundle = getIntent().getExtras();
if (bundle!=null){
DataProvider dataProvider = bundle.getParcelable("data");
Bitmap b = BitmapFactory.decodeByteArray(byteArray , 0, byteArray.length);
galerie_foto_retrieve.setImageBitmap(b);
DbOperace
public Cursor getInformations(SQLiteDatabase db)
{
Cursor cursor;
String[] projections = {
FormDatabase.FormularovaDatabaze.IMAGE1
};
cursor = db.query(FormDatabase.FormularovaDatabaze.TABLE_NAME,projections,null,null,null,null,null);
if (cursor != null) {
cursor.moveToFirst();
return cursor;
}
else
{
return cursor;
}