执行recyclerView.addView时,在空对象引用上使用'boolean android.support.v7.widget.RecyclerView $ ViewHolder.shouldIgnore()'

j.e*_*mer 5 android android-recyclerview

为什么当我尝试在之后向recyclerView添加其他视图时 recyclerView.setAdapter()

返回此错误

Attempt to invoke virtual method 'boolean android.support.v7.widget.RecyclerView$ViewHolder.shouldIgnore()' on a null object reference
Run Code Online (Sandbox Code Playgroud)

范例程式码

...
recyclerView.setAdapter(mAdapter);

TextView textView = new TextView(this);
textView.setText("TEST");

recyclerView.addView(textView);
Run Code Online (Sandbox Code Playgroud)

与已经在recyclerView中显示的视图相比,附加视图有所不同。但是我要添加的其他视图应该显示在recyclerview的末尾,对吗?

Swr*_*der 5

我认为,问题在于:

您已将 recyclerview 的适配器设置为您使用该类创建的适配器

适配器: Adapter 对象充当 AdapterView 和该视图的基础数据之间的桥梁。适配器提供对数据项的访问。适配器还负责为数据集中的每个项目创建一个视图。

因此,您的适配器视图已经为您的 recyclerView 项目提供了视图。

现在,当您尝试插入一个不属于适配器提供的视图上下文的项目时,它会显示一条错误,指出您的视图可能与适配器的视图不具有相同的上下文。

因此,它不接受 recyclerView 中的 textView,因为它应该采用适配器类提供的 cardview 形式。