LiveData не обновляет свое значение при втором вызове APIAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 LiveData не обновляет свое значение при втором вызове API

Сообщение Anonymous »

Я получаю курс обмена валюты с помощью вызова API, используя концепцию модификации и ViewModel. При запуске приложения я могу получить последние данные с сервера, но когда я пытаюсь обновить текущие данные, нажав кнопку, Live Data значение не обновляется, я получаю те же старые данные. Кто-нибудь может помочь мне, как обновить данные в реальном времени при нажатии кнопки.
ViewModel Class*****
класс MainViewModel (частный репозиторий val: CurrencyRepository) : ViewModel() {
init {
viewModelScope.launch() {
repository.getCurrencyExchangeList()
}
}

val quotes: LiveData
get() = repository.currencyLiveData


Класс репозитория*****
class CurrencyRepository(private valcurrencyService: CurrencyInterface) {
val currencyLiveData = MutableLiveData()

suspend fun getCurrencyExchangeList() {
val result = currencyService.getAllCurrencyData()
if (result.body() != null) {
//currencyLiveData.postValue(result.body())
currencyLiveData.value = result.body()
}
}

}
Метод (в MainActivity) для получения и обновления списка валют *****
личное развлечение 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»