Size: a a a

Android Developers

2020 August 18

ИМ

Илья Мурашко... in Android Developers
Vadim Morozov
ну вот решил что через фабрику будет лучше
Везде где ты будешь инжектить QuoteId тебе будет приходить то, что ты напишешь в реализации метода provideQuoteId . . . Я не думаю, что для передачи id из фрагмента в viewModel тебе нужен вообще Dagger или какой-то другой di
источник

VM

Vadim Morozov in Android Developers
фабрика которая в себе содержит параметры для всех существующих viewModel'ей
источник

ИМ

Илья Мурашко... in Android Developers
Vadim Morozov
фабрика которая в себе содержит параметры для всех существующих viewModel'ей
Оу, то есть ты хочешь получить не конкретную viewModel, а в зависимости от того id, который передаешь?
источник

A

Andryuhahaha in Android Developers
а смысл от такого если репозиторий один будет
источник

VM

Vadim Morozov in Android Developers
Илья Мурашко
Оу, то есть ты хочешь получить не конкретную viewModel, а в зависимости от того id, который передаешь?
не не
я получу модель с quoteId
всё)
источник

VM

Vadim Morozov in Android Developers
Andryuhahaha
а смысл от такого если репозиторий один будет
ну репозиторий то я тоже через фабрику передаю
источник

ИМ

Илья Мурашко... in Android Developers
Vadim Morozov
не не
я получу модель с quoteId
всё)
Так, в любом случае передача quoteId через @Provides так себе идея, в данном случае . . . Либо я чего-то не понимаю
источник

VM

Vadim Morozov in Android Developers
Илья Мурашко
Так, в любом случае передача quoteId через @Provides так себе идея, в данном случае . . . Либо я чего-то не понимаю
вот взгляните на код
сейчас загвоздка так раз таки в AppModule

https://gist.github.com/mnewlive/add6ded361fd4a1416823ff322472eea
источник

S

SE in Android Developers
Спасибо
источник

ГМ

Глеб Михайлов... in Android Developers
ребят, не работает google map в apk файлах, работает только если с компа на телефон через usb переносить, что делать?
источник

ИМ

Илья Мурашко... in Android Developers
Одно скажу точно, то что не надо писать provideQuoteId в AppModule
источник

VM

Vadim Morozov in Android Developers
Илья Мурашко
Одно скажу точно, то что не надо писать provideQuoteId в AppModule
ладно ок)
допустим!
я передавал из фрагмента guid во viewModel и он приходил и всё чётко классно
но проблема была в том, что я не мог стянуть с репозитория по этому guid'у свой элемент почему то.
источник

ИМ

Илья Мурашко... in Android Developers
Vadim Morozov
ладно ок)
допустим!
я передавал из фрагмента guid во viewModel и он приходил и всё чётко классно
но проблема была в том, что я не мог стянуть с репозитория по этому guid'у свой элемент почему то.
возвращался null? Ошибка какая-то? В таком случае вероятна ошибка в реализации репозитория, я бы посоветовал продебажить от инита до конца запроса элемента
источник

VM

Vadim Morozov in Android Developers
Илья Мурашко
возвращался null? Ошибка какая-то? В таком случае вероятна ошибка в реализации репозитория, я бы посоветовал продебажить от инита до конца запроса элемента
нет, guid норм
но не обновляются поля quoteLiveData
источник

VM

Vadim Morozov in Android Developers
визуально я имею в виду.
источник

VM

Vadim Morozov in Android Developers
Илья Мурашко
возвращался null? Ошибка какая-то? В таком случае вероятна ошибка в реализации репозитория, я бы посоветовал продебажить от инита до конца запроса элемента
null я получаю во фрагменте там  где quoteLiveData
к примеру author возвращается null
источник

ИМ

Илья Мурашко... in Android Developers
Vadim Morozov
null я получаю во фрагменте там  где quoteLiveData
к примеру author возвращается null
Ну судя по коду это поле объекта в LiveData, следовательно либо LiveData возвращает null, либо не инициализируется ваш quoteId, т.к. там написано quoteId ?: return@run MutableLiveData(null)
Почему бы просто не сделать так
val quoteLiveData = MutableLiveData<Quote>()
fun loadQuoteByQuoteId(quoteId: String) {
quoteLiveData.value = quoteRepository.getQuoteByIdLiveData(quoteId)
}
источник

ИМ

Илья Мурашко... in Android Developers
и из фрагмента, допустим в onCreate после setupViewModel() вызвать viewModel.loadQuoteByQuoteId(args.quoteId)
источник

VM

Vadim Morozov in Android Developers
Илья Мурашко
Ну судя по коду это поле объекта в LiveData, следовательно либо LiveData возвращает null, либо не инициализируется ваш quoteId, т.к. там написано quoteId ?: return@run MutableLiveData(null)
Почему бы просто не сделать так
val quoteLiveData = MutableLiveData<Quote>()
fun loadQuoteByQuoteId(quoteId: String) {
quoteLiveData.value = quoteRepository.getQuoteByIdLiveData(quoteId)
}
метод  требует Quote?
а находит LiveData<Quote?>
источник

ИМ

Илья Мурашко... in Android Developers
Vadim Morozov
метод  требует Quote?
а находит LiveData<Quote?>
У вас LiveData в репозитории???
источник