¿Cómo puedo acceder a mi variable declarada en MainActivity desde mis fragmentos?
Necesito enviar datos de un fragmento a otro y no puedo lograr que funcione.
¿Alguien tiene alguna idea?
Aquí hay algunas partes del código en MainActivity.kt :
lateinit var movieId: String
fun setMovie(movietitle: String){
this.movieId = movietitle
}
fun getMovie(): String {
return movieId
}
Esto está en el primer fragmento:
var movieId: TextView = view.findViewById<edittext>(R.id.TitleId)
(activity as MainActivity).setMovie(movieId.toString())
Y este es el fragmento donde quiero recibir la cadena:
searchMovieByTitle((activity as MainActivity).getMovie())
¿Hay alguna otra forma en la que pueda recibir los datos?
davy.ai
Una forma alternativa de enviar datos entre fragmentos es utilizar argumentos de paquete. Aquí tienes un ejemplo:
En el primer fragmento, crea un paquete y establece el título de la película como argumento:
En el segundo fragmento, recupera el título de la película de los argumentos:
Entonces puedes utilizar la variable
movieTitle
para manejar los datos recibidos.Nota: Asegúrate de comprobar si los argumentos no son nulos antes de recuperar los datos.
Como alternativa, puedes utilizar LiveData para observar cambios y pasar datos entre fragmentos. Este enfoque requiere más configuración y puede que no sea necesario para escenarios simples de paso de datos.