¿Cómo puedo enviar datos de una actividad (intento) a otra?
Yo uso este código para enviar datos:
Intent i=new Intent(context,SendMessage.class);
i.putExtra("id", user.getUserAccountId()+"");
i.putExtra("name", user.getUserFullName());
context.startActivity(i);
android
android-intent
Adham
fuente
fuente
user.getUserAccountId()+""
ya que esto crearía objetos innecesarios para ser recogido. Considere usarString.valueOf(user.getUserAccountId)
, o en suInteger.toString(user.getUserAccountId)
lugar.Respuestas:
Primero, obtenga la intención que ha comenzado su actividad utilizando el
getIntent()
método:Si sus datos adicionales se representan como cadenas, puede usar el
intent.getStringExtra(String name)
método. En tu caso:fuente
getIntent().getStringExtra("id");
para obtener la cadena de identificacióngetIntent()
método. He actualizado la respuesta.En la actividad receptora
fuente
getStringExtra?
null
, se puede omitir toda la búsqueda de extras. Al usarlogetStringExtra
, básicamente lo cambias a una serie deif(extras != null) { return extras.getString(name) }
. Uno por cadagetStringExtra
llamada. Esta opción verificará pornull
una vez y, de ser así, no se molestará en leerlaBundle
. Además de eso,getStringExtra
probablemente seguirá preguntandogetExtras
internamente también cada vez. Entonces simplemente tiene más llamadas a funciones.fuente
Agregar
Establecer datos
Obtener datos
fuente
En lugar de inicializar otra nueva intención para recibir los datos, simplemente haga esto:
fuente
Si se usa en una FragmentActivity, intente esto:
La primera página extiende FragmentActivity
En el fragmento, solo debes llamar
getActivity()
primero,La segunda página extiende Fragmento :
fuente
Si está tratando de obtener datos adicionales en fragmentos, puede intentar usar:
Colocar datos usando:
Obtenga datos usando:
fuente
Puede obtener cualquier tipo de datos adicionales por intención , sin importar si es un objeto o cadena o cualquier tipo de datos.
y la solución más corta es:
fuente
** Poner datos por intención - **
** Obtener datos por intención - **
si enviamos el valor entero por intención. cuando debemos usar el segundo parámetro 0 en getIntent (). getIntExtra ("instituteId", 0) de lo contrario no usamos 0, entonces Android me da un error.
fuente
Kotlin
Primera actividad
Segunda actividad
Sugerencia
Siempre coloque las claves en un archivo constante para una forma más administrada.
fuente
Sólo una sugerencia:
En lugar de usar "id" o "name" en su i.putExtra ("id" .....), sugeriría, cuando tenga sentido, usar los campos estándar actuales que se pueden usar con putExtra (), es decir Intención.EXTRA_something.
Se puede encontrar una lista completa en Intent (Desarrolladores de Android).
fuente
Podemos hacerlo por medios simples:
En FirstActivity:
En SecondActivity:
fuente
Pase la intención con valor en la primera actividad:
Recibir intención en la segunda actividad; -
Usamos generalmente dos métodos para enviar el valor y obtener el valor. Para el envío del valor vamos a utilizar
intent.putExtra("key", Value);
y durante la intención de recibir otra actividad vamos a utilizarintent.getStringExtra("key");
para obtener los datos de intención comoString
o utilizar algún otro método disponible para obtener otros tipos de datos (Integer
,Boolean
, etc.). La clave puede ser cualquier palabra clave para identificar el valor, es decir, qué valor está compartiendo. Espero que funcione para ti.fuente
También puede hacer esto
// poner valor en la intención
// obtener valor de la intención
fuente
Obteniendo diferentes tipos de extra de intención
Para acceder a los datos de Intent debes saber dos cosas.
Existen diferentes métodos en la clase Intent para extraer diferentes tipos de tipos de datos. Se parece a esto
Entonces, si conoce el tipo de datos de su varibale que configuró en otherActivity, puede usar el método respectivo.
Ejemplo para recuperar la cadena en su actividad del intento
Lista de diferentes variantes de métodos para diferentes tipos de datos
Puede ver la lista de métodos disponibles en la Documentación oficial de intención .
fuente
fuente
Acabo de publicar una respuesta aquí que cubre este tema con un poco más de detalle, incluidas algunas alternativas.
Utiliza Vapor API , un nuevo marco de Android inspirado en jQuery que escribí para simplificar el desarrollo de Android. Vea el ejemplo en esa respuesta para saber cómo puede pasar fácilmente datos entre actividades.
También se muestra
VaporIntent
, lo que le permite encadenar llamadas de método y utilizar el.put(...)
método sobrecargado :Puede pasar fácilmente datos por toda su aplicación utilizando la API de Vapor , por lo que esperamos que sea útil para usted y para otros durante el desarrollo de la aplicación.
fuente