Я получаю обменный курс валюты по вызову 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
Форум для тех, кто программирует под Android
-
Anonymous
1745678455
Anonymous
Я получаю обменный курс валюты по вызову 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)
})
}
Подробнее здесь: [url]https://stackoverflow.com/questions/78759369/livedata-is-not-updating-its-value-on-2nd-api-call[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия