Soy muy nuevo en el desarrollo de Android.
Quiero crear e iniciar una actividad para mostrar información sobre un juego. Muestro esa información, necesito un gameId.
¿Cómo puedo pasar esta identificación del juego a la actividad? La ID del juego es absolutamente necesaria, así que no quiero crear o iniciar la actividad si no tiene la ID.
Es como si la actividad tiene solamente un constructor con un parámetro.
¿Cómo puedo hacer eso?
Gracias.
android
android-activity
oncreate
VansFannel
fuente
fuente
intent.putExtra(String, Int)
.Simplemente agregue datos adicionales a la intención que utiliza para llamar a su actividad.
En la actividad de la persona que llama:
Dentro de onCreate () de la actividad que llamas:
fuente
Me gusta hacerlo con un método estático en la segunda actividad:
Luego, desde su primera actividad (y para cualquier otro lugar), simplemente haga:
fuente
String gameId = intent.getStringExtra(EXTRA_EXTERNAL_ID);
serString gameId = intent.getStringExtra(EXTRA_GAME_ID);
Código de Kotlin:
Comience el
SecondActivity
:Obtenga la identificación en
SecondActivity
:donde
gameId
estáString?
(puede ser nulo)fuente
Las respuestas existentes (pasar los datos en el
Intent
pasado astartActivity()
) muestran la forma normal de resolver este problema. Hay otra solución que se puede usar en el caso extraño de que esté creando una Actividad que será iniciada por otra aplicación (por ejemplo, una de las actividades de edición en un complemento de Tasker ) y, por lo tanto, no controla laIntent
que iniciaActivity
.Puede crear una clase base
Activity
que tenga un constructor con un parámetro, luego una clase derivada que tenga un constructor predeterminado que llame al constructor de la clase base con un valor, así:Si necesita generar el parámetro para pasar al constructor de la clase base, simplemente reemplace el valor codificado con una llamada de función que devuelve el valor correcto para pasar.
fuente