Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

468
Views
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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!