onActivityResult dentro de un RecyclerView.Adapter no se está utilizando

Tengo un botón dentro de un adaptador que entra en la galería:

MyAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { ... onClic..{ Intent intent = new Intent( Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); intent.setType("image/*"); ((Activity) context).startActivityForResult( Intent.createChooser(intent, "Select File"), SELECT_FILE);} .... @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode == RESULT_OK) { } } .. } 

Lo que estoy tratando de hacer es actualizar un ImageView con la imagen seleccionada de la galería, pero para hacer eso tengo que usar onActivityResult y el compilador está quejando method onActivityResult is never used y cannot resolve method onActivityResult .

¿Cómo puedo hacer esto?

Nota sobre esta línea está utilizando una Activity para llamar a startActivityForResult :

 ((Activity) context).startActivityForResult(); 

onActivityResult(...) es un método de devolución de llamada y debe estar en la misma Activity que se utiliza para llamar a startActivityForResult() .

Usted está recibiendo el error del compilador porque no hay tal método para anular el nombre onActivityResult(...) para RecyclerView.Adapter .

EDITAR:

Puesto que usted preguntó cómo usted puede hacer esto correctamente aquí es una opción.

Agregue la siguiente interfaz a MyAdapter :

 public interface OnClickImageListener{ void onClick(); } 

Luego, haga que su diálogo implemente esa interfaz. En el método onClick :

 @Override public void onClick() { Intent intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); intent.setType("image/*"); startActivityForResult( Intent.createChooser(intent, "Select File"), SELECT_FILE); } 

Puede agregar el onActivityResult(...) a su Fragment y ahora se llamará.

Para usar esto cuando crea MyAdapter pasar el Fragment en como un argumento para el constructor y hacer referencia a él como OnClickImageListener para que su oyente de clics en el adaptador simplemente se convierte en:

 imageClickListener.onClick(); 

También tenga en cuenta que puede agregar un índice al método onClick() o cualquier otra cosa que necesite para saber qué elemento del adaptador debe rellenar la imagen una vez que se devuelve.

  • Android Studio no puede resolver el símbolo GoogleAnalytics v4
  • No se pudo encontrar la propiedad 'allJava' en el conjunto de fuentes principal
  • Android Studio Update bloqueado limpieza?
  • Android Studio es lento (cómo acelerar)?
  • : ADVERTENCIA: android / base / files / IniFile.cpp: 158: No se pudo procesar el archivo .ini C: \ Users \ User_Name \ .android \ emu-update-last-check.ini para leer
  • ¿Cómo eliminar mockable-android-23.jar automáticamente?
  • Excepción NullPointer al intentar ejecutar un dispositivo en el android studio
  • Android findFragmentByTag devuelve null al depurar
  • Android Studio / Intellij Idea: "Tabla de contenido" para una clase
  • No se puede crear un proyecto Android en Android Studio (Vista preliminar de I / 0) 130.737825 (Mac)
  • AndroidStudio gradle proxy
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.