我为聊天应用程序提供了一个recyclerview,所以我需要实现用户,以便我从firebase中获得他们,并且一旦我添加了他们的图像,一切就可以正常工作,图像没有显示在recyclerview中,这让我出错“ E / RecyclerView:未连接适配器;正在跳过布局”
这是我用于实现的函数,我在onCreate方法中调用它
fun fetchUsers(){
val ref = FirebaseDatabase.getInstance().getReference("/users")
ref.addValueEventListener(object:ValueEventListener {
override fun onCancelled(p0: DatabaseError) {
}
override fun onDataChange(p0: DataSnapshot) {
val adapter = GroupAdapter<ViewHolder>()
p0.children.forEach {
Log.d("NewMessageActivity",it.toString())
val user = it.getValue(User::class.java)
adapter.add(UserItem(user!!))
adapter.setOnItemClickListener { item, view ->
val intent = Intent(view.context, ChatLogActivity::class.java)
startActivity(intent)
finish()
}
}
recyclerViewNewMessages.adapter=adapter
}
})
}
这是我叫的班级
class UserItem(val user : User): Item<ViewHolder>(){
override fun getLayout(): Int {
return R.layout.user_row_newmessages
}
override fun bind(viewHolder: ViewHolder, position: Int) {
viewHolder.itemView.tv_UserNamenewed.text = user.userName
Picasso.get().load(user.profileImage).into(viewHolder.itemView.iv_UserPhotonewed)
}
}
答案 0 :(得分:0)
您可以在启动时分配并清空适配器,然后在有适配器时将数据添加到适配器。这样,您将不会看到此日志。
换句话说,如果您在主线程中进行分配,例如在活动的onCreate()
中,则不会看到此信息。但是,首先将适配器设置为异步代码块。一切都已绘制完毕,并且recyclerview还没有提供适配器,因此它会打印此日志。