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

355
Views
Android Mvvm, app con más de una actividad

soy nuevo en Android, estoy trabajando en una aplicación que recupera datos del servidor usando retrofit y kodein y MvvM en kotlin configuré un cajón de navegación en mi aplicación y el propósito es que cuando hago clic en el elemento del cajón de navegación se abre una nueva actividad y en esta actividad quiero mostrar recyclerview pero cuando se abre una nueva actividad, recyclerview no puede configurar listitem en el reciclador, depuro mi código en mis repositorios y clase de modelo de vista y veo que recibieron datos, depuro mi código en una nueva actividad y veo que viewmodel no puede recibir esos datos y establecer un icono no válido junto a mi código en viewmodel.observe

esta es mi clase de repositorio:

 fun getdigitalproduct(): LiveData<List<DigitalProduct>>{ val dpData:MutableLiveData<List<DigitalProduct>> = MutableLiveData<List<DigitalProduct>>() val apiClient = ApiClient() val call:Call<List<DigitalProduct>> = apiClient.getClient().create(ApiService::class.java).getdigitalproduct() call.enqueue(object : Callback<List<DigitalProduct>>{ override fun onResponse( call: Call<List<DigitalProduct>>, response: Response<List<DigitalProduct>> ) { dpData.value = response.body() } override fun onFailure(call: Call<List<DigitalProduct>>, t: Throwable) { dpData.value = null } }) return dpData }

esto es para ViewModel

 var repoDigitalProduct: LiveData<List<DigitalProduct>> = repositorys.getdigitalproduct() fun getdigitalproduct(): LiveData<List<DigitalProduct>>{ return repoDigitalProduct }

esto es para nueva actividad:

 private fun getDigitalProduct() { viewModel.getdigitalproduct().observe(this, Observer { digipro.addAll(it) })

esto es digipro:

 var digipro: ArrayList<DigitalProduct> = ArrayList()

y esto uso este código en el método oncreate en nueva actividad:

 viewModel = ViewModelProviders.of(this, factory).get(AllViewModel::class.java) getDigitalProduct() setdigitalProductRecycler()

también uso el código viewmodelprovider.of en Mainactivity

esto es para setdigitalProductRecycler:

 private fun setdigitalProductRecycler() { val digiproRecycler = digital_product_recycler digiproRecycler.layoutManager = LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, true) digiproRecycler.adapter = DigitalProductAdapter(digipro) }

mis códigos funcionan en la actividad principal, pero cuando lo pruebo en una nueva actividad .........

¿Qué tengo que hacer?

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

La mejor manera de resolver este problema es crear su modelo de vista en actividad o puede usar un modelo de vista compartido. Entonces su modelo de vista se mantendrá mientras su actividad retenga

https://stackoverflow.com/a/52611554/8868638

over 4 years ago · Santiago Trujillo Report

0

Puse el repositorio y el modelo de vista en el objeto complementario y luego llamé al modelo de vista de MainActivity en esa actividad.

esto es para MainActivty:

 companion object{ val repositorys = AllRepositorys() var viewModel: AllViewModel = AllViewModel(repositorys) }

esto es para newActivity:

 lateinit var viewModel: AllViewModel

y puse esto en el método oncreate () en la nueva actividad:

 viewModel = MainActivity.viewModel

ACTUALIZAR

Ahora manejo este problema creando un modelo de vista para cada fragmento o actividad. Porque ViewModel está diseñado para almacenar y administrar datos relacionados con la interfaz de usuario en un ciclo de vida de Actividad o Fragmento

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!