Android. Программирование для профессионалов. 4-е издание


fun getCrime(id: UUID): LiveData



Download 21,53 Mb.
Pdf ko'rish
bet187/485
Sana13.07.2022
Hajmi21,53 Mb.
#787165
1   ...   183   184   185   186   187   188   189   190   ...   485
Bog'liq
Android Programmirovanie dlya professionalov 4-e izdanie 2020 Fillips Styuart Marsikano Gardner

fun getCrime(id: UUID): LiveData
}
Возвращая экземпляр 
LiveData
из вашего класса DAO, вы
запускаете запрос в фоновом потоке. Когда запрос завершается,
объект 
LiveData
будет обрабатывать отправку данных
преступлений в основной поток и сообщать о любых
наблюдателях.
Кроме того, 
CrimeRepository
должен возвращать объект
LiveData
из своих функций запроса.
Листинг 11.16. Возврат LiveData из хранилища
(CrimeRepository.kt)
class 
CrimeRepository 
private
constructor(context: Context) {
...
private val crimeDao = database.crimeDao()
fun getCrimes(): List =
crimeDao.getCrimes()
fun getCrimes(): LiveData> =
crimeDao.getCrimes()
fun getCrime(id: UUID): Crime? =
crimeDao.getCrime(id)


fun getCrime(id: UUID): LiveData =
crimeDao.getCrime(id)
...
}
Наблюдение за LiveData
Чтобы отобразить преступления из базы данных в списке на
экране, нужно чтобы 
CrimeListFragment
наблюдал за
LiveData

возвращаемым 
из 
функции
CrimeRepository.getCrimes()
.
Сначала откройте файл 
CrimeListViewModel.kt
и
переименуйте свойство 
crimes
, чтобы стало яснее, что оно
делает.
Листинг 11.17. Доступ к хранилищу в ViewModel
(CrimeListViewModel.kt)
class CrimeListViewModel : ViewModel() {
private 
val 
crimeRepository 
=
CrimeRepository.get()
val 
crimes crimeListLiveData =
crimeRepository.getCrimes()
}
Затем очистите 
CrimeListFragment
, чтобы отразить тот
факт, что 
Crime 
List 
View 
Model
сейчас открывает 
LiveData
,
возвращенный из хранилища (листинг 11.18). Удалите
реализацию 
OnCreate(...)
, так как она ссылается на
CrimeListViewModel.crimes

которого 
больше 
не
существует. В 
updateUI()
удалите ссылку на 
Crime 
List- 


ViewModel.crimes
и добавьте параметр, позволяющий брать
на вход список преступлений.
Наконец, 
удалите 
вызов 
updateUI()
из
onCreateView(...)
. Вызов 
updateUI()
будет выполняться
из другого места.

Download 21,53 Mb.

Do'stlaringiz bilan baham:
1   ...   183   184   185   186   187   188   189   190   ...   485




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish