Приложение завершает работу после выбора изображения в Android Studio (onActivityResult не вызывается)

#java #android #android-studio

Вопрос:

Поэтому я использовал это, чтобы открыть свое изображение, выберите при нажатии кнопки

 //Open image chooser  Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);  photoPickerIntent.setType("image/*");  startActivityForResult(photoPickerIntent, SELECT_PHOTO);  

и используется на activityresult

 private final static int SELECT_PHOTO = 12345;   @Override   protected void onActivityResult(int requestCode, int resultCode, Intent data) {  super.onActivityResult(requestCode, resultCode, data);  Log.e("CALLED", "OnActivity Result");  if (requestCode == SELECT_PHOTO amp;amp; resultCode == RESULT_OK) {  // Let's read picked image data - its URI  Uri pickedImage = data.getData();  // Let's read picked image path using content resolver  String[] filePath = { MediaStore.Images.Media.DATA };  Cursor cursor = getContentResolver().query(pickedImage, filePath, null, null, null);  cursor.moveToFirst();  String imagePath = cursor.getString(cursor.getColumnIndex(filePath[0]));   BitmapFactory.Options options = new BitmapFactory.Options();  options.inPreferredConfig = Bitmap.Config.ARGB_8888;  Bitmap bitmap = BitmapFactory.decodeFile(imagePath, options);  Log.e("img", "It worked");   // Do something with the bitmap    // At the end remember to close the cursor or you will end with the RuntimeException!  cursor.close();  }  }  

В logcat не вызывается onActivityResult, и я не могу понять, почему. Поэтому, когда я нажимаю кнопку, появляется окно выбора изображения, я выбираю изображение, а затем оно возвращается на главный экран. Я что-то упускаю, так как следовал чужому коду, но все равно получаю то же самое

Комментарии:

1. protected void это не то, чем должно быть.

Ответ №1:

Дайте этому попробовать:

 Intent intent = new Intent();  intent.setType("image/*");  intent.setAction(Intent.ACTION_GET_CONTENT);  startActivityForResult(Intent.createChooser(photoPickerIntent,"Select:"), SELECT_PHOTO);