De datos en onActivityResult es nulo

Estoy tratando de hacer una aplicación sencilla para Android . Tengo dos Actividades ( A y B ). En B sólo quiero seleccionar una date .

Comienzo A , y lo hago:

  Intent intent = new Intent(); intent.setClass(this, B.class); startActivityForResult(intent,1); 

Entonces, en B , hago:

  Intent intent = getIntent(); setResult(RESULT_OK); intent.putExtra("Date",dateSelected); finish(); 

Y, en A , tengo el siguiente método:

 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if(resultCode==RESULT_OK && requestCode==1){ Bundle bundle = getIntent().getExtras(); String aux = bundle.getString("nuevo"); ..... } 

Pero los data y el bundle son null . Cuando depuro el código, veo que en la clase B , la intent tiene los Extras , pero entonces, cuando llamo finish() y vuelvo a la class A , esta intent no es accesible.

¿Como puedó resolver esté problema?

prueba esto:

Entonces, en B, hago:

 Intent intent = getIntent(); intent.putExtra("Date",dateSelected); setResult(RESULT_OK, intent); finish(); 

Y, en A:

 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if(resultCode==RESULT_OK && requestCode==1){ Bundle MBuddle = data.getExtras(); String MMessage = MBuddle .getString("Date"); } } 

En A método onActivityResult

  if(null!=data){ Bundle bundle = data.getExtras(); String mydate = bundle.getString("Date"); } 

Y en B

 Intent returnIntent = new Intent(); returnIntent.putExtra("Date",dateSelected); setResult(RESULT_OK,returnIntent); finish(); 

Sé que esto se responde, pero sólo para dar más explicación sobre el error, que estaba utilizando getIntent() lugar del elemento de data recibidos en la devolución de llamada.

getIntent() devuelve el Propósito que se utilizó originalmente para abrir la Actividad A (tal vez al abrir la aplicación o desde otra actividad) y los data son la intención que la Actividad B devuelve como parámetros de respuesta.

Además, utilizaba getIntent() en la Actividad B en lugar de crear un nuevo Propósito que se devolvería a la Actividad A.

 Intent returnIntent = new Intent(); 

Finalmente, la intención creada debe agregarse en setResult

 setResult(RESULT_OK,returnIntent); 
  • Android Intent: -Use Intención de pasar objetos de clase de Activities
  • ¿Cómo manejar una intención que no tiene datos a primera llamada de una actividad?
  • Android Intent Clear No funciona
  • Android.intent.action.BOOT_COMPLETED La intención no se recibe en "Reiniciar" o "Reiniciar"
  • Abrir url con un navegador
  • ¿Cómo usar putExtra () con FLAG_ACTIVITY_REORDER_TO_FRONT en las aplicaciones de Android?
  • Android: pasar los datos de ida y vuelta utilizando el intento setResults
  • Intención de actividad en Side-Menu.Android de diseño de material
  • ¿Qué sucede con la pila trasera al volver a abrir una actividad cuando launchMode = "singleTask"?
  • Cómo iniciar una nueva actividad en android
  • ¿Cómo forzar la elección de la tienda de aplicaciones instalada?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.