我有这个错误: java.lang.NullPointerException:尝试调用虚方法' void android.widget.ImageView.setImageResource(int)'在空对象引用上
我已按照步骤将ImageView
放入活动中。错误是如何发生以及如何解决的?注意到在hadis_layout中,我使用RecylerView
。感谢
我的ImageView
<ImageView
android:layout_width="match_parent"
android:layout_height="0dp"
android:id="@+id/hadisView"
android:layout_gravity="center_horizontal"
android:layout_weight="0.36"
android:contentDescription="Hadis"
android:src="@drawable/hadith01arabic"/>
我的活动
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.hadis_layout);
toolbar = (Toolbar) findViewById(R.id.tool_bar);
setSupportActionBar(toolbar);
ImageView imageView = (ImageView) findViewById(R.id.hadisView);
imageView.setImageResource(R.drawable.hadith01arabic);
}
答案 0 :(得分:1)
您不能只是从中更改recycleview
图像资源
activity
。要做到这一点,你必须改变你的覆盖
onBindViewHolder
类的RecycleViewAdapter
函数。添加
ViewHolderObject.imgResourceIdName.setImageResource(R.drawable.image_name);
到onBindViewHolder
类中的RecycleViewAdapter
函数,其相关ID为itemView
改变了。 (此处imgResourceIdName
位于recycleView single_rv_item.xml 资源文件中。)
当您尝试将图像资源设置为不在ImageView
文件中的resouce_layout.xml
时,会出现上述错误。这意味着即使您按照
imageView.setImageResource(R.drawable.hadith01arabic);
imageView
的对象是 null 。
做
ImageView imageView = (ImageView)findViewById(R.id.hadisView);
您刚刚初始化 null imageView
对象变量 ImageView 数据类型。因为findViewById(R.id.hadisView)
没有指向任何资源。检查hadisView
名为 imageView 的资源是否首先显示在相关的 resource.xml 文件中。