Есть 3 просмотра изображений, для которых я хочу установить изображение, снятое с камеры.Намерение камеры вызывается из фрагмента, снимок снимается, но при возврате во фрагмент приложения уничтожается и воссоздается.
Я сохраняю все 3 пути изображения в списке, но поскольку фрагмент уничтожен, список переинициализируется, а размерсписка становится равным 0.
Намерение для камеры:
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (getActivity() != null) {
if(takePictureIntent.resolveActivity(getActivity().getPackageManager()) != null) {
// Create the File where the photo should go
File photoFile = null;
try {
photoFile = createImageFile();
} catch (IOException ex) {
// Error occurred while creating the File
}
// Continue only if the File was successfully created
if (photoFile != null) {
photoPaths.add(photoFile.getAbsolutePath());
Uri photoURI=FileProvider.getUriForFile(getContext(),"com.example.parking.fileprovider",photoFile);
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT,photoURI);
startActivityForResult(takePictureIntent, REQUEST_TAKE_PHOTO);
}
}
}
И в onActivityResult извлекается намерение изображения:
Bitmap bitmap;
// here imgCount is for checking number of images captured since I only want to capture 3 images.
if (imgCount == 0) {
bitmap = cropImageForApp(preview1, photoPaths.get(imgCount));
preview1.setImageBitmap(bitmap);
imgCount++;
} else if (imgCount == 1) {
bitmap = cropImageForApp(preview2, photoPaths.get(imgCount));
preview2.setImageBitmap(bitmap);
imgCount++;
} else if(imgCount ==2) {
bitmap =cropImageForApp(preview3,photoPaths.get(imgCount));
preview3.setImageBitmap(bitmap);
imgCount++;
}
Ожидаемый результат: Изображениебыть захваченным и установленным при просмотре изображения.
И ошибка, которую я получаю:
java.lang.RuntimeException: Невозможно возобновить действие {com.parking.vehicleparking / com.parking.vehicleparking.activity.RegisterActivity}: java.lang.RuntimeException: сбой при доставке результата ResultInfo {who = null, request = 65537, result = -1, data = null} в действие {com.parking.vehicleparking / com.parking.vehicleparking.activity.RegisterActivity}: java.lang.IndexOutOfBoundsException: индекс: 0, размер: 0 в android.app.ActivityThread.performResumeActivity (ActivityThread.java:3657) на android.app.ActivityThread.handleResumeActivity (ActivityThread.java:3697) на android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2927) на android.app.ActivityThread.-wrap11 (неизвестный источник: 0) на андроиде.app.ActivityThread $ H.handleMessage (ActivityThread.java:1639) в android.os.Handler.dispatchMessage (Handler.java:106) в android.os.Looper.loop (Looper.java:176) в android.app.ActivityThread.main (ActivityThread.java:6662) в java.lang.reflect.Method.invoke (собственный метод) в com.android.internal.os.RuntimeInit $ MethodAndArgsCaller.run (RuntimeInit.java:547) в com.android.internal.os.ZygoteInit.main (ZygoteInit.java:873) Вызвано: java.lang.RuntimeException: сбой при доставке результата ResultInfo {who = null, request = 65537, result = -1, data = null} в действие {com.parking.vehicleparking / com.parking.vehicleparking.activity.RegisterActivity}: java.lang.IndexOutOfBoundsException: индекс: 0, размер: 0 в android.app.ActivityThread.deliverResults (ActivityThread.java:4365) в android.app.ActivityThread.performResumeActivity (ActivityThread.java:3629) в android.app.ActivityThread.handleResumeActivity (ActivityThread.java:3697) в android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2927) в android.app.ActivityThread-wrap11 (неизвестный источник: 0) в android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1639) в android.os.Handler.dispatchMessage (Handler.java:106) в android.os.Looper.loop (Looper.Java: 176) в android.app.ActivityThread.main (ActivityThread.java:6662) в java.lang.reflect.Method.invoke (собственный метод) в com.android.internal.os.RuntimeInit $ MethodAndArgsCaller.run (RuntimeInit.java: 547) at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:873). Причина: java.lang.IndexOutOfBoundsException: индекс: 0, размер: 0 в java.util.ArrayList.get (ArrayList.Java: 437) в com.parking.vehicleparking.fragment.CaptureImageFragment.onActivityResult (CaptureImageFragment.java:143) в android.support.v4.app.FragmentActivity.onActivityResult (FragmentActivity.java:160) в com.parking.vehicleparking.activity.RegisterActivity.onActivityResult (RegisterActivity.java:275) в android.app.Activity.dispatchActivityResult (Activity.java:7341) в android.app.ActivityThread.deliverResults Activity (.java: 4361) в android.app.ActivityThread.performResumeActivity (ActivityThread.java:3629) в android.app.ActivityThread.handleResumeActivity (ActivityThread.java:3697) в android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2927)вandroid.app.ActivityThread.-wrap11 (неизвестный источник: 0) в android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1639) в android.os.Handler.dispatchMessage (Handler.java:106) в android.os.Looper.loop (Looper.java:176) на android.app.ActivityThread.main (ActivityThread.java:6662) на java.lang.reflect.Method.invoke (собственный метод) на com.android.internal.os.RuntimeInit$ MethodAndArgsCaller.run (RuntimeInit.java:547) на com.android.internal.os.ZygoteInit.main (ZygoteInit.java:873)