【发布时间】:2020-11-05 21:44:49
【问题描述】:
我有一个带有 RecyclerView 的 LinearLayout xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:id="@+id/r1"
android:background="#DBDBDB">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#DBDBDB" />
</LinearLayout>
在我的 java 类中,我正在设置整个 Linearlayout 的背景图像:
LinearLayout linear;
linear = findViewById(R.id.r1);
linear.setBackgroundResource(R.drawable.visitedbg);
这工作正常。但我也想在 Recycleradapter 中为 Linearlayout 设置背景。
在列表中,用户可以通过单击删除任何项目。如果最后一项被删除,我想显示背景图像。
在onBindViewHoldermethod 我有:
movieList.remove(position);notifyDataSetChanged();
if (getItemCount()<=0){holder.linear.setBackgroundResource(R.drawable.visitedbg);}
问题是 Nullpointer 异常,因为我无法在 Recycleradapter 中定义 LinearLayout 视图。
我试着把它发给public MyviewHolder(View itemView),也公开RecyclerAdapter.MyviewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType)作为
LinearLayout linear = itemView.findViewById(R.id.r1);
但这仍然不起作用。有什么解决办法吗?
【问题讨论】:
标签: android android-recyclerview setbackground