【发布时间】:2019-04-15 15:18:38
【问题描述】:
我正在使用ViewModel 加载数据并将其设置为SwipeRefreshLayout RecyclerView
mAdapter = NewRecyclerViewAdapter(listAct, this@MainActivity, hashMap)
list?.adapter = mAdapter
workViewModel.getRequests()?.observe(
this, Observer { resource ->
resource?.data?.let {
Log.d(TAG,it.size)
mAdapter.setOrders(it)
}
}
)
workViewModel = ViewModelProviders.of(
this,
ViewModelFactory.getInstance(activity.application)
).get(WorkViewModel::class.java)
.......
swipe_container.setOnRefreshListener {
mAdapter.setWorkOrders(listAct)
mAdapter.notifyDataSetChanged()
}
我用日志调试,它显示大小为2。数据似乎检索成功,但它没有设置为recyclerView。
适配器
private var order = emptyList<Order>()
......
internal fun setOrders(order: List<Order>) {
this.order = order
this.order.sortedBy { it.created_at }
notifyDataSetChanged()
}
【问题讨论】:
-
把 notifyDataSetChanged() 也放到 Oberserver 中
-
@HappySingh 添加,结果还是一样
-
在 setOrders() 中,您正在设置相同的订单列表。使用订单而不是订单
-
@HappySingh 在那里犯了一个错误。帖子已更新。
-
能否请您发布完整代码,以便于理解
标签: android kotlin android-recyclerview viewmodel swiperefreshlayout