调试器不会在Recyclerview适配器中的断点处停止

时间:2017-11-21 14:51:49

标签: android debugging android-recyclerview

class testAdapter(
        private val list: ArrayList<Objects>
) : RecyclerView.Adapter<testViewHolder>() {

override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): testViewHolder {
    *BREAKPOINT HERE* 
val view = LayoutInflater.from(parent.context)
            .inflate(R.layout.X, parent, false)
    val viewHolder = testViewHolder(view)

    return viewHolder
}

override fun onBindViewHolder(holder: testViewHolder, position: Int) {
    holder.bind()
}

override fun getItemCount(): Int { return contentList.size }

}

我可以看到程序在这里,因为断点是经过检查标记的。我很确定,它是由async(通过改装)调用引起的,它收集了项目列表,但我怎么能与之斗争呢?如果我无法调试适配器功能,我可以编写代码。

我设置了这样的适配器:

onCreate() {
        recyclerView =rootView.findViewById(R.id.test)
        gridLayoutManager = /* custom grid layout manager */ (this is fine)
        recyclerView.layoutManager = gridLayoutManager
}

asyncFunctionResult(list: List) {
    contentAdapter = testAdapter()
    recyclerView.adapter = contentAdapter
}

抱歉伪代码,但这应该足够了。很明显,在适配器等方面有很多问题,但它至少应该从调试器中获得[停止]。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

看起来您的列表未填写,onCreateViewHolder仅在需要对项目进行充气时调用,此时需要显示列表项。

您可以尝试将项目添加到contentlistlist(因为您的代码显示了2个列表,我认为这也是伪代码)。

答案 1 :(得分:0)

对于有此问题的任何人:请尝试检查是否忘记添加recyclerview.layoutManager