#android #android-livedata #type-mismatch #mutablelivedata
#Android #android-livedata #несоответствие типа #изменяемые живые данные
Вопрос:
В моей viewmodel у меня есть следующее :
// hold the list of comments of a Post
private val _commentsOfPost = MutableLiveData<PagedList<Comment>>()
val commentsOfPost : LiveData<PagedList<Comment>> = _commentsOfPost
fun getCommentsOfPost(postId: Long){
_commentsOfPost.value = commentRepository.getCommentsOfPost(postId) // <--- TYPE MISMATCH
}
Итак, что происходит, так это то, что всякий раз, когда фрагмент getCommentsOfPost()
вызывается, он извлекает PagedList
несколько Comment
экземпляров, принадлежащих Post
указанному его идентификатору.
Но Android сообщает мне о Type mismatch
(см. Стрелку в codesnippet выше):
Required: PagedList<Comment>?
Found: LiveData<PagedList<Comment>>
Для полноты картины, это getCommentsOfPost()
интерфейс:
fun getCommentsOfPost(postId: Long) : LiveData<PagedList<Comment>>
Как я могу изменить это, чтобы эта ошибка исчезла?
Ответ №1:
Вы должны вернуться к списку страниц, пример:
fun getCommentsOfPost(postId: Long) : PagedList<Comment> {
// your code
// return PagedList<Comment>
}