не инициализировал photoGalleryViewModel. Вот код:
class PhotoGalleryViewModel:ViewModel() {
val galleryItemLiveData: LiveData<List<GalleryItem>> = FlickrFetchr().fetchPhotos()
}
class PhotoGalleryFragment: Fragment() {
private lateinit var photoGalleryViewModel: PhotoGalleryViewModel
private lateinit var photoRecyclerView: RecyclerView
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
photoGalleryViewModel = ViewModelProvider(this).get(photoGalleryViewModel::class.java)
}
Вылетает из за того что здесь private lateinit var photoGalleryViewModel: PhotoGalleryViewModel не инициализировано...
но в onCreate я же инициализирую photoGalleryViewModel = ViewModelProvider(this).get(photoGalleryViewModel::class.java)
или чего -то не хватает?) помогите пожалуйста
Помогите решить проблему, как нужно инициализировать ViewModel ? by lazy пробовал.
По моему вы не инициализируете объект, а кладете в него его же значение. Я имею ввиду, что справа от присваивания код означает то же, что и слева. То есть не инициализированное значение.. А вообще, я не пользовался этим классом. У меня просто такое впечатление сложилось
А вообще обратите внимание, на эту строку (в моем прошлом сообщении) еще раз. Вы обращаетесь к объекту как к классу. Первый литер в нижнем регистре. Может в этом беда?
Инициализировал на джаве как в примерах и горя не знал. Там же в примерах от гугля прямо в доках есть и для котлина - через by с указанием делегата (не lazy, там своя фабрика)
Обсуждают сегодня