Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

460
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda