Tengo 2 actividades, Actividad1 y Actividad2 .
En Activity1
Tengo un botón y TextView . Cuando se hace clic en el botón Actividad2 se inicia .
En Activity2
Tengo un EditText .
Quiero mostrar los datos recuperados de EditText en Activity2 en TextView en Activity1 cuando se presiona hacia atrás desde Activity2 .
¿Alguien puede ayudarme con el código para que esto funcione?
android
android-activity
parent-child
pass-data
kumareloaded
fuente
fuente
startActivityForResult
Activity2
coloca el valor en un almacenamiento persistente y loActivity1
lee desde allí.Respuestas:
Inicie Activity2 con
startActivityForResult
y use elsetResult
método para enviar datos de vuelta desde Activity2 a Activity1. En la Actividad 1, deberá anular laonActivityResult
actualizaciónTextView
con losEditText
datos de la Actividad 2.Por ejemplo:
En Activity1 , inicie Activity2 como:
En Activity2 , use
setResult
para enviar datos de vuelta:Y en la Actividad 1 , reciba datos con
onActivityResult
:Si puede, también use SharedPreferences para compartir datos entre Actividades.
fuente
SharedPreferences
entonces mira este ejemploActividad 1 debería iniciar Activity2 con
startActivityForResult()
.Actividad2 debería usar
setResult()
para enviar datos de vuelta a Activity1 .En Activity2 ,
En Activity1 ,
fuente
Otras respuestas no estaban trabajando cuando pongo
setResult
enonBackPressed
. Comentar la llamada a superonBackPressed
y llamarfinish
manualmente resuelve el problema:Y en primera actividad:
fuente
Tome esto como una alternativa para iniciarActivityforResult. Pero tenga en cuenta que en tales casos este enfoque puede ser costoso en términos de rendimiento, pero en algunos casos es posible que deba usarlo.
En Activity2,
En Activity1,
fuente
Desde su FirstActivity, llame a SecondActivity usando el método startActivityForResult ().
Por ejemplo:
En su SecondActivity, configure los datos que desea devolver a FirstActivity. Si no desea regresar, no configure ninguno.
Por ejemplo: en secondActivity si desea devolver datos:
Si no desea devolver datos:
Ahora en su clase FirstActivity escriba el siguiente código para el método onActivityResult ().
fuente
Esta es tu primera Actividad 1.
Desde aquí, está iniciando su Activity2.class utilizando startActivityForResult (mRequestCode, Activity2.class);
Ahora esta es tu segunda actividad, el nombre es Activity2
Ahora, cuando haya terminado con su segunda Actividad, llame al método setResult (), desde onBackPress () o desde cualquier botón, haga clic cuando su Activity2 destruirá y luego el método de devolución de llamada de su Activity1 onActivityResult () llamará desde allí, puede obtener sus datos por intención ..
Espero que te ayude ... :)
fuente
Lee esto:
Estos artículos lo ayudarán a comprender cómo pasar datos entre dos actividades en Android.
fuente
TL; Uso DR
Activity.startActivityForResult
Respuesta larga:
Debería comenzar leyendo la documentación para desarrolladores de Android. Específicamente, el tema de su pregunta está cubierto en la
Starting Activities and Getting Results
sección de laActivity
documentación.Como por ejemplo, el código, el SDK de Android proporciona buenos ejemplos. Además, otras respuestas aquí le brindan fragmentos breves de código de muestra para usar.
Sin embargo, si está buscando alternativas, lea esta pregunta SO . Esta es una buena discusión sobre cómo usar
startActivityForResults
con fragmentos, así como un par de enfoques para pasar datos entre actividades.fuente
y tengo un problema que quería hacer esto enviando el tipo de datos en un botón programable que había creado y la tecla programable que es la predeterminada en cada dispositivo Android, así que hice esto, primero hice un
Intent
en mi "A"Activity
:Luego, en mi segunda actividad, he declarado un campo en mi "B"
Activity
:luego, después de hacer mi solicitud con éxito o cuando quisiera decirle a la Actividad "A" que este trabajo se realizó con éxito aquí, cambie el valor de resultCode al mismo que dije en "A",
Activity
que en mi caso es "60" y luego:PD: Recuerde eliminar el
Super
método onBackPressed si desea que esto funcione correctamente.entonces también debería llamar al
onActivityResult
Método en mi Actividad "A":eso es todo, espero que te ayude. #HappyCoding;
fuente