Несоответствие типа Android переменной LiveData

#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>
}