Я сохранил изображение в своей базе данных как byteArray
и как blob
, однако я не могу показать изображение в ImageView
, когда я пытаюсь получить к нему доступ снова. Я получаю это сообщение
Не удалось прочитать строку 0, столбец 4 из CursorWindow.
Вот мой код:
Home.java
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
mDatabaseHelper = new DatabaseHelper(this);
imageView = findViewById(R.id.imageView);
Cursor data = mDatabaseHelper.getData2();
if(data.moveToNext() && data.getCount() > 0){
byte[] image = data.getBlob(4);
Bitmap finalImage = BitmapFactory.decodeByteArray(image, 0, image.length);
imageView.setImageBitmap(finalImage);
}
}
DatabaseHelper.java
public boolean addEntryImage(byte[] image) throws SQLiteException {
SQLiteDatabase database = this.getWritableDatabase();
ContentValues cv = new ContentValues();
cv.put(COL5,image);
long result = database.insert( TABLE_NAME, null, cv );
//if date as inserted incorrectly it will return -1
if (result == -1) {
return false;
} else {
return true;
}
}
public Cursor getData2(){
SQLiteDatabase db = this.getWritableDatabase();
//String query = "SELECT " + COL5 + " FROM " + TABLE_NAME;
Cursor data = db.rawQuery("select * from profile_table", null);
return data;
}
Буду признателен за любую помощь, спасибо!