为什么我在recyclerView.setAdapter()
返回此错误
Attempt to invoke virtual method 'boolean android.support.v7.widget.RecyclerView$ViewHolder.shouldIgnore()' on a null object reference
示例代码
...
recyclerView.setAdapter(mAdapter);
TextView textView = new TextView(this);
textView.setText("TEST");
recyclerView.addView(textView);
与已在recyclerView中显示的视图相比,其他视图不同。但是我要添加的附加视图应该在recyclelerview的末尾显示吗?
答案 0 :(得分:4)
我认为,问题是:
您已将recyclerview的适配器设置为使用类
创建的适配器适配器: Adapter对象充当AdapterView与该视图的基础数据之间的桥梁。适配器提供对数据项的访问。适配器还负责为数据集中的每个项目创建视图。
因此,您的适配器视图已经为您的recyclerView项目提供了视图。
现在,当您尝试插入一个超出适配器提供的视图的上下文的项目时,它会显示一条错误,指出您的视图可能与适配器的上下文不同。
所以它不接受你的recyclerView中的textView,因为它应该是你的适配器类提供的cardview形式。
答案 1 :(得分:0)
发生此错误,因为RecyclerView创建自己的视图(请参阅.onCreateViewHolder()方法) - 它管理视图本身,您不能添加这样的视图。 RecyclerView(这就是它所谓的原因)重用了膨胀的视图,因此它不必每次都创建新的视图。您应该添加一些数据对象并在ViewHolder实现中绑定该对象