SQLite - извлечение изображения из базы данных и отображение в ImageView. - PullRequest
0 голосов
/ 14 мая 2018

Я сохранил изображение в своей базе данных как 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;
}

Буду признателен за любую помощь, спасибо!

1 Ответ

0 голосов
/ 14 мая 2018

вы бы извлекли data.moveToNext () из блока if.Then, попробуйте снова

...