Библиотека подкачки с использованием сообщения не получено - адаптер не заполнен - PullRequest
0 голосов
/ 17 декабря 2018

Я пытаюсь использовать новую библиотеку подкачки для кодирования Android в Kotlin, но я действительно застрял на данный момент.Мой бэкэнд использует метод post для соединения с вызовами API, и я пытаюсь адаптировать учебники, которые я нашел, используя get, но пока не удается.Любая помощь очень ценится.

Вот так мой адаптер вызывается из моего класса Fragment, но он всегда нулевой.

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
    super.onViewCreated(view, savedInstanceState)

    setVerticalRecyclerView(rv_resources)

    val itemViewModel = ViewModelProviders.of(this).get(ItemViewModel::class.java)
    val adapter = ResourcesAdapter(activity as MainActivity)
    itemViewModel.itemPagedList.observe(this, object : Observer<PagedList<Resource>> {
        override fun onChanged(items: PagedList<Resource>?) {
            adapter.submitList(items)
        }
    })

    rv_resources.adapter = adapter

}

Я чувствую, что проблема, вероятно, исходит отсюда:

class ItemDataSource : PageKeyedDataSource<Int, Resource>() {

override fun loadInitial(params: PageKeyedDataSource.LoadInitialParams<Int>, callback: PageKeyedDataSource.LoadInitialCallback<Int, Resource>) {

      getResources()
}

override fun loadBefore(params: PageKeyedDataSource.LoadParams<Int>, callback: PageKeyedDataSource.LoadCallback<Int, Resource>) {

    getResources()              
}

override fun loadAfter(params: PageKeyedDataSource.LoadParams<Int>, callback: PageKeyedDataSource.LoadCallback<Int, Resource>) {

    getResources()        
}

private fun getResources() {

    val jo = JsonObject()
    jo.addProperty("page", 0)
    jo.addProperty("page_size", 10)

    GetAllResourceListAPI.postData(jo, object : GetAllResourceListAPI.ThisCallback {
        override fun onSuccess(getResourceList: GetResourceList) {
            Toast.makeText(App.getContext(), "onSuccess ${getResourceList.count}", Toast.LENGTH_SHORT).show()
        }

        override fun onFailure(failureMessage: String) {
            Toast.makeText(App.getContext(), "onFailure", Toast.LENGTH_SHORT).show()
        }

        override fun onError(errorMessage: String) {
            Toast.makeText(App.getContext(), "onError", Toast.LENGTH_SHORT).show()
        }
    })
}

Первоначально я пытаюсь показать любую страницу в моем адаптере, поэтому вставил одинаковые коды для loadInitial, loadBefore и loadAfter пытающегосячтобы решить проблему вовремя, если это возможно, так как в настоящее время мой адаптер показывает пустой, хотя я получаю успех от моего вызова API.Возможно, я упускаю что-то довольно очевидное здесь, но просто не вижу этого, поскольку я впервые использую нумерацию страниц и тоже не очень знаком с наблюдателями.

У меня есть суть с созданием чуть большего количества моего кода здесь

Большое спасибо за вашу помощь.

...