Я пытаюсь использовать новую библиотеку подкачки для кодирования 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.Возможно, я упускаю что-то довольно очевидное здесь, но просто не вижу этого, поскольку я впервые использую нумерацию страниц и тоже не очень знаком с наблюдателями.
У меня есть суть с созданием чуть большего количества моего кода здесь
Большое спасибо за вашу помощь.