Transmisión de datos entre varias actividades
Tengo tres actividades, digamos que tengo los datos de ActivityA, y quiero ActivityC para recuperar, pero debe pasar por ActivityB que no quiero hacer nada sobre los datos pasados. ¿Hay alguna forma de hacerlo?
Yo he tratado
- Modo de lanzamiento "single top" de Android y método onNewIntent
- Flip-Animación para el cambio de actividad
- Transición de la actividad en Android
- ¿Cómo cerrar la actividad del navegador al volver a la actividad de llamada?
- El diseño de la actividad parpadea después de terminar () se llama
ActividadA.java
Intent i = new Intent(this, ActivityB.class); i.putExtra("DATA1", "Hello"); i.putExtra("DATA2", "World"); startActivity(i);
ActivityB.java no hace nada al respecto pero debe ser visto antes de ActivityC.
Actividad.java
Bundle b = getIntent().getExtras(); String data1 = b.getString("DATA1"); String data2 = b.getString("DATA2");
Pero me da esta excepción
11-30 02:12:05.165: W/dalvikvm(1134): threadid=1: thread exiting with uncaught exception (group=0x4001d800) 11-30 02:12:05.185: E/AndroidRuntime(1134): FATAL EXCEPTION: main 11-30 02:12:05.185: E/AndroidRuntime(1134): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.src.test/com.src.test.ActivityC}: java.lang.NullPointerException 11-30 02:12:05.185: E/AndroidRuntime(1134): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663) 11-30 02:12:05.185: E/AndroidRuntime(1134): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 11-30 02:12:05.185: E/AndroidRuntime(1134): at android.app.ActivityThread.access$2300(ActivityThread.java:125) 11-30 02:12:05.185: E/AndroidRuntime(1134): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 11-30 02:12:05.185: E/AndroidRuntime(1134): at android.os.Handler.dispatchMessage(Handler.java:99) 11-30 02:12:05.185: E/AndroidRuntime(1134): at android.os.Looper.loop(Looper.java:123) 11-30 02:12:05.185: E/AndroidRuntime(1134): at android.app.ActivityThread.main(ActivityThread.java:4627) 11-30 02:12:05.185: E/AndroidRuntime(1134): at java.lang.reflect.Method.invokeNative(Native Method) 11-30 02:12:05.185: E/AndroidRuntime(1134): at java.lang.reflect.Method.invoke(Method.java:521) 11-30 02:12:05.185: E/AndroidRuntime(1134): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 11-30 02:12:05.185: E/AndroidRuntime(1134): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 11-30 02:12:05.185: E/AndroidRuntime(1134): at dalvik.system.NativeStart.main(Native Method) 11-30 02:12:05.185: E/AndroidRuntime(1134): Caused by: java.lang.NullPointerException 11-30 02:12:05.185: E/AndroidRuntime(1134): at com.src.test.ActivityC.onCreate(ActivityC.java:98) 11-30 02:12:05.185: E/AndroidRuntime(1134): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 11-30 02:12:05.185: E/AndroidRuntime(1134): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
Que apunta a String data1 = b.getString("DATA1");
¿Hay alguna manera de hacer esto correctamente?
Cualquier ayuda sería muy apreciada.
- Cómo borrar la pila del historial de actividades al pulsar el botón de inicio?
- Pasar el paquete al conjunto de actividades como tarea única
- Admob en múltiples actividades?
- Android - A veces comienza una actividad incorrecta
- ¿Cuánto dura un paquete?
- ¿Cómo reiniciar una aplicación completamente?
- Android onActivityResult
- OnActivityResult () se llama en un momento inesperado
Al llamar de B a C, agregue a su intención:
myIntent.putExtras(getIntent().getExtras());
Es porque su ActivityB no lo empuja a ActivityC:
Intent newIntent = new Intent(ActivityB.this, ActivityC.class); Bundle bundle = getIntent().getExtras(); if (bundle != null) { newIntent.putExtras(bundle); } startActivity(newIntent);
Hacer esto en la actividad B:
Bundle b = getIntent().getExtras(); String data1 = b.getString("DATA1"); String data2 = b.getString("DATA2"); Intent i = new Intent(this, ActivityC.class); i.putExtra("DATA1", data1); i.putExtra("DATA2", data2); startActivity(i);
- Acoplamiento de FirebaseRecyclerViewAdapter a un Boolean / String Map.Entry
- LibGDX IntelliJ IDEA no puede acceder a com.badlogic.gdx.Application