我有两个图像,一个红灯和一个绿灯。我有一个自定义 ListView,我想在列表项处于非 Activity 状态时显示红灯,在 Activity 时显示绿灯。按下时激活列表项。
这是我的代码
行.xml
<ImageView
android:id="@+id/iconLight"
android:src="@drawable/light_off"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
主程序
ImageView iconLight = (ImageView)findViewById(R.id.iconLight);
iconLight.setImageResource(R.drawable.light_on);
我得到一个 NullPointerException 执行设置图像资源的行。所以我做了一些测试,我删除了 XML 文件中设置 src 的行,并尝试在主类中设置它。仍然是 NPE。所以我尝试不更改资源,而只是更改 alpha。还是NPE。
我不确定我做错了什么。
light_off.png
和 light_on.png
文件都在 res/drawable-ldpi
中,当我在 XML 中指定它们时,它们中的任何一个都可以工作。但是我尝试对主文件中的 iconLight
进行的任何更改都会导致此 NPE。有任何想法吗? 最佳答案
获得 NPE 的唯一方法...
iconLight.setImageResource(R.drawable.light_on);
用于使 iconLight 为空。因此,您的 findViewById 失败了。在调用 findViewById 之前是否设置了布局?你确定 R.id.iconLight 在 Activity 的根布局中吗?