Обновите значение LiveDataType в архитектурных компонентах ViewModel для Android kotlin

Я пытаюсь отобразить список, используя kotlin и архитектурные компоненты Android. Ответ отображается на экране, используя вид модели наблюдателя. Но при выполнении разбиения на страницы и при повороте экрана последний ответ отображается только вместо всех, так как я чувствовал, что нам нужно обновить значение LiveData в ViewModel. Но я не могу обновить значение LiveData со всем списком. Я пытаюсь выяснить функцию loadSearch()

Ниже мой код

class NewsViewModel (): ViewModel () {

var topNewsList : LiveData<ArrayList<Articles>>? = null;

var pageNumber = 0


fun init(category: String?){

    val articlesRepo: ArticlesRepositry = ArticlesRepositry()

    if(topNewsList != null){

        return
    }

    if(category.isNullOrBlank()){
        topNewsList = articlesRepo.getTopNews()

    }else{
        topNewsList = articlesRepo.getTopCategoryNews(category!!)

    }

}

fun loadSearchData(searchString: String?, pageNo: Int?){

    val articlesRepo: ArticlesRepositry = ArticlesRepositry()

    if(pageNo == 1){

        topNewsList = articlesRepo.getSearchNews(searchString!!, pageNo)

    }else{

        topNewsList = articlesRepo.getSearchNews(searchString!!, pageNo!!)

    }

}

override fun onCleared() {
    super.onCleared()
    Log.d("CLEARED ","VIEWMODEL")
}

fun getTopNewsesList(): LiveData<ArrayList<Articles>>{
    return topNewsList!!;
}

}

0 ответов

Другие вопросы по тегам