Как обновить sh данных MVVM LiveData - PullRequest
0 голосов
/ 20 февраля 2020
**ViewModel.kt**

  val ooDeliveries by lazy {
        repository.ooDeliveries() // return a livedata
    }

**HomeFragment.kt**

onCreateView-- 

     viewModel.ooDeliveries.observe(this, Observer { result ->
                when (result.status) {
                    Result.Status.SUCCESS -> {
                        binding.progressBar.hide()
                        result.data?.let {
                            adapter.submitList(it.list)
                            binding.recycler.adapter = adapter
                            binding.recycler.setHasFixedSize(true)
                        }

                    }
                    Result.Status.LOADING -> binding.progressBar.show()
                    Result.Status.ERROR -> {
                        binding.progressBar.hide()

                        Snackbar.make(binding.root, result.message!!, Snackbar.LENGTH_LONG).show()
                    }
                }
            })

Мой список заполняется в первый раз, Как мне реализовать нажатие кнопки, чтобы обновить sh данные для вызова val ooDeliveries я сделал, и ничего не произошло

Ответы [ 2 ]

0 голосов
/ 20 февраля 2020

LiveData будет вызывать ваш метод наблюдений () только один раз, когда вы вызываете метод setData () или postData (), вместо этого используйте MutableLiveData, ваша проблема должна быть решена

0 голосов
/ 20 февраля 2020

создайте класс в вашем адаптере и просто назовите его там, где ваши новые данные ссылаются sh

fun refresh(mutableAlphaBet: 
          MutableList<TemplateItemModel>) {
    this.mutableAlphaBet = mutableAlphaBet
    notifyDataSetChanged()
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...