Call startActivityForResult from Fragment no llama onActivityResult
tengo unDialogActivity
que se llama desde unFragment
para mostrar una costumbreDialog
Con dos botones de imagen.
EnDialogActivity.onCreate
final Dialog dialog = new Dialog(this, R.style.DialogTheme);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.dialog_pause);
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
dialog.show();
EnDialogActivity.onClick
@Override
public void onClick(View v) {
Log.d(LOGTAG, "onClick CONTINUE");
Intent resultData = new Intent();
resultData.putExtra("TEST", "return data");
setResult(666, resultData);
dialog.cancel();
}
En Fragmento que llama.startActivityForResult
:
Intent dialogActivityIntent = new Intent(getActivity(), DialogActivity.class);
startActivityForResult(dialogActivityIntent, 999);
EnActivity
yFragment
que llamastartActivityForResult
:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
}
Cuando hago clic en el botón, solo aparece el cuadro de diálogo cancelar y muestra la actividad de fondo (fragmento).
No hay ninguna llamada aonActivityResult
, onResume
, ... en elFragment
o laActivity
contiene elFragment
.
Para implementaronActivityResult
en ambos,Fragment
yActivity
que contiene miFragment
.
Yo puse el atributonoHistory=true
en cadaActivity
Yo tengo.
Si lo hagofinish()
enonClick
laActivity/Fragment
que llamaDialogActivity
Se cierra también, y la aplicación vuelve a la anterior.Activity
.
Este puede ser el problema, NO llamofinish()
... pero si llamofinish()
, sale a otraActivity
, no laActivity
que llamastartActivityForResult
.
¿No se puede activar OnActivityResult () de Android?
startActivityForResult no parece llamar onActivityResult
onActivityResult nunca se llama
Android onActivityResult NUNCA se llama
onActivityResult () no se llama cuando la actividad comenzó desde el fragmento
Espero que todo esté claramente explicado ^^.
Gracias por adelantado.