Я использую базу данных Sqlite для хранения изображения и использую Cursor Loader для загрузки изображения на экран из базы данных.
Но я получаю эту ошибку:
«java.lang.IllegalStateException: не удалось прочитать строку 0, столбец 0 из CursorWindow. Убедитесь, что курсор правильно инициализирован, прежде чем обращаться к его данным».
Когда я пытаюсь вставить более 1 или 2 изображений в базу данных Мой класс адаптера курсора< /а>
ImageView imageView = view.findViewById(R.id.item_image);
TextView textView = view.findViewById(R.id.item_name);
//Fetching the values from the cursor
String name = cursor.getString(cursor.getColumnIndex(ItemEntry.COLUMN_NAME));
byte[] image = cursor.getBlob(cursor.getColumnIndex(ItemEntry.COLUMN_IMAGE));
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
options.inSampleSize = calculateInSampleSize(options, 500, 500);
options.inJustDecodeBounds = false;
Bitmap imageBitmap = BitmapFactory.decodeByteArray(image, 0, image.length, options);
//Populate the views
imageView.setImageBitmap(imageBitmap);
textView.setText(name);
Cursor
. Даже если вы уменьшите эти изображения, чем больше вы добавите, тем больше вероятность того, что вы снова столкнетесь с той же проблемой. Решение состоит в том, чтобы просто не хранить изображения в базе данных. Сохраняйте их как файлы и сохраняйте их пути к файлам в базе данных. - person Mike M.   schedule 19.11.2018