我正在使用groupie库及其适配器来管理我的RecyclerView。我有一个用户名和消息列表,但是每当我使用时 adapter.getAdapterPosition它返回-1我检查该项目,它是正确的 com.example.myapplication.classes.Message@9a582a9
试图在此论坛上到处搜索,但找不到解决方案 这是我的一部分代码(使用kotlin)
val listOfLastMessages = mutableMapOf<String,ChatLogMessages>()
testButton.setOnClickListener {
// "4VOPV7TR7SWtrIn8s4hnZ6JBaAV2" is a user in my FirebaseDatabase, and olderLatestMessage is not returning null
val olderLatestMessage :Message? = listOfLastMessages["4VOPV7TR7SWtrIn8s4hnZ6JBaAV2"]
println("Position: "+adapter.getAdapterPosition(messageRow(olderLatestMessage!!)).toString())
}
class messageRow(private val LatestMessage :Message ) :Item<ViewHolder> () {
override fun getLayout(): Int {return R.layout.message_main_row }
override fun bind(viewHolder: ViewHolder, position: Int) { }
}
我的留言班
class Message(var from_uid:String = "",var to_uid:String = "",var message:String = "",var timeStamp:Long = -1) {
}
我只是删除了一些代码以使发现问题更加容易,我的行显示正确,但是我需要检查特定用户行的位置,但始终返回-1。如果您需要任何进一步的解释,我可以提供
提前谢谢。
答案 0 :(得分:0)
通过更改此方法解决了我的问题
val listOfLastMessages = mutableMapOf<String,ChatLogMessages>()
对此:
val listOfLastMessages = mutableMapOf<String,Group>()
并在其中添加一个分组群组