Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

466
Vistas
pasar clase de datos entre dos fragmentos

Creo que lo estoy haciendo mal, pero esta es mi situación.
Obtengo datos json dentro de un fragmento, luego los proceso con Gson a una clase de datos y los muestro. Lo que necesito es usar estos datos nuevamente dentro de otro fragmento en un adaptador giratorio personalizado que esté listo.

Por lo que entiendo, es imposible pasar objetos, ¿cómo puedo hacer esto? Intenté usar el paquete y no funcionó.

el método onResponse (primer fragmento)

 override fun onResponse(call: Call?, response: Response?) { val jsonString = response?.body()?.string() val gson = GsonBuilder().create() val data = gson.fromJson(jsonString,currancyModel::class.java) countryData = data activity?.runOnUiThread { rootView.recyclerView.adapter = CountryAdapter(data) } }

la clase de datos

 data class currancyModel(val items: List<Item>) data class Item(val countray :String,val rate:String)

el getView en el adaptador giratorio personalizado dentro del segundo fragmento (necesito mis datos aquí)

 override fun getView(p0: Int, p1: View?, p2: ViewGroup?): View { val view = inflater.inflate(R.layout.custome_spinner,null) val img = view.findViewById<View>(R.id.spinner_image) as ImageView val countary_name = view.findViewById<View>(R.id.spinner_country) as TextView img.setImageResource(R.drawable.us) countary_name.setText(country!![p0].countray) return view }
over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

  1. ¿Muestras dos fragmentos en tu Activity simultáneamente? Si es así, puede pasar los datos a través de él. O implemente alguna interfaz/observable/datos en vivo para pasar los datos entre los fragmentos.

  2. Si el Fragment A obtiene los datos y luego cambia el Fragment A al Fragment B , haga que sus clases de datos Parcelable y luego páselas como argumentos al crear Fragment B :

 companion object { fun newInstance(yourData : DataClass) = FragmentB().apply { arguments = Bundle().apply { putParcelable("dataKey",yourData) } }

Nota: puede anotar su clase de datos con @Parcelize . Luego, el compilador generará todos los métodos Parcelable y la clase de fábrica por usted.

Después de pasar los datos al Fragment B en la creación, recupérelos, por ejemplo:

val data: YourData by lazy { arguments?.getParcelable("dataKey") as YourData }

over 4 years ago · Santiago Trujillo Denunciar

0

De hecho, es posible pasar objetos de un fragmento a otro dado que su clase de objeto debe implementar Parcelable. Y pasar el objeto a través del paquete llamando a putParcelable en el objeto del paquete.

 1. class CurrancyModel : Parcelable { //Implement Parcelable }

Y pásalo entre los fragmentos a través de Bundle.

 2.var fragment = YourFragment().apply { arguments = Bundle().apply{ putParcelable("dataKey",yourData) } }
over 4 years ago · Santiago Trujillo Denunciar

0

Una idea podría ser usar una clase de datos singleton, con un HashMap<String, Object> que tenga una clave con algún tipo de ID que cree usted mismo, y luego el valor sea el objeto que desea poder recuperar. Entonces, en onResponse , agregará sus datos al HashMap en la clase de datos y luego simplemente los recuperará de la otra clase.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda