OnActivityResult () tiene datos de intención como null después de que una actividad ha terminado

Hola estoy llamando a un startActivityForResult () y tratando de procesar el resultado en el método onAcvityResult (). Sin embargo, los datos de intención son nulos y el resultado es RESULT_CANCELED. No estoy seguro de por qué sin embargo.

Estoy creando actividad con:

startActivityForResult(new Intent(this, Class.class),LIST_RESULT); 

Entonces en la clase de actividad

 @Override public void onBackPressed() { super.onBackPressed(); Intent data = new Intent(); Bundle bundle = new Bundle(); bundle.putParcelable("name", la); data.putExtras(bundle); if (getParent() == null) { setResult(Activity.RESULT_OK, data); } else { getParent().setResult(Activity.RESULT_OK, data); } //finish(); } 

Finish () no tiene ningún efecto. De hecho, recibo una advertencia en LogCat que duplicar la solicitud de finalización HistoryRecord

Y estoy procesando el resultado en:

 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); switch(requestCode) { case(LIST_RESULT): if(resultCode == Activity.RESULT_OK) { previousList = data.getExtras(); } break; } } 

Los datos son nulos y el resultCode es Action.RESULT_CANCELED.

¿Alguna idea de por qué no estoy recibiendo nada? ¿Hay algo cambiándolo entre mi configuración y lectura? El mParent también es nulo en la actividad que devuelve el resultado.

Alex

Alex,

Creo que desea eliminar el llamado a finish() en su método onBackPressed() , y reemplazarlo por la llamada a super.onBackPressed() . Creo que la llamada a super.onBackPressed() está llamando a finalizar y nunca tendrás la oportunidad de llamar a setResult() .

Tratar…

 @Override public void onBackPressed() { Intent data = new Intent(); Bundle bundle = new Bundle(); bundle.putParcelable("name", la); data.putExtras(bundle); if (getParent() == null) { setResult(Activity.RESULT_OK, data); } else { getParent().setResult(Activity.RESULT_OK, data); } super.onBackPressed(); } 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.