Я получаю обменный курс валюты по вызову API с использованием концепции модифицированного и ViewModel.on Запуск приложения Я могу получить последние данные с сервера, но когда я пытаюсь обновить живые данные, нажав кнопку, значение живых данных не обновляется, я получаю те же старые данные. Как я могу обновить живые данные на кнопке нажимать событие? < /P>
# ViewModel Class*****
class MainViewModel(private val repository: CurrencyRepository) : ViewModel() {
init {
viewModelScope.launch() {
repository.getCurrencyExchangeList()
}
}
val quotes: LiveData
get() = repository.currencyLiveData
}
# Repository Class*****
class CurrencyRepository(private val currencyService: CurrencyInterface) {
val currencyLiveData = MutableLiveData()
suspend fun getCurrencyExchangeList() {
val result = currencyService.getAllCurrencyData()
if (result.body() != null) {
//currencyLiveData.postValue(result.body())
currencyLiveData.value = result.body()
}
}
}
# Method(in MainActivity) to get and update currency list *****
private fun fetchCurrencyRates() {
val currencyService = RetrofitHelper.getInstance().create(CurrencyInterface::class.java)
val repository = CurrencyRepository(currencyService)
val mainViewModel =
ViewModelProvider(this, MainViewModelFactory(repository))[MainViewModel::class.java]
mainViewModel.quotes.observe(this, Observer {
Log.d("AllCurrencyList", it.updated)
})
}
Подробнее здесь: https://stackoverflow.com/questions/787 ... d-api-call
Livedata не обновляет свое значение на 2 -м вызове API ⇐ Android
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение