【发布时间】:2020-02-04 10:15:38
【问题描述】:
我正在制作一个回收站视图。使用 init 块 时,我遇到了问题。 我期望代码按顺序执行。但它不正常
一些代码:
inner class TodoListFragmentRecyclerViewAdapter : RecyclerView.Adapter<RecyclerView.ViewHolder>() {
val doListDTOs = ArrayList<DoListDTO>()
init {
Log.e("1","1")
doListListenerRegistration = fireStore.collection("doList").whereEqualTo("doListName",todoList_name).orderBy("doListTimestamp", Query.Direction.DESCENDING).limit(100)
.addSnapshotListener { querySnapshot, firebaseFirestoreException ->
if (querySnapshot == null) return@addSnapshotListener
doListDTOs.clear()
for (snapshot in querySnapshot.documents) {
val item = snapshot.toObject(DoListDTO::class.java)
doListDTOs.add(item!!)
Log.e("2",doListDTOs.toString())
notifyDataSetChanged()
}
}
Log.e("3",doListDTOs.toString())
}
}
我希望日志显示如下顺序
1 -> 2 -> 3
但是,实际输出是
1 -> 3 -> 2
这是为什么?
作为一个附加问题,由于上述顺序,日志 3 中的最后一个 doListDTOs.toString() 为空。但日志 2 中的 doListDTOs.toString 有一些价值。 如果不是订单问题,如果您能告诉我是什么问题,我将不胜感激。
【问题讨论】:
标签: kotlin