我正在创建一个Android应用程序,每次用户输入值时都会显示相同的imageview。但是我希望每次用户输入值时都会更改imageview。我写了一个代码来做这个,但问题是在第一个图像显示后我面对黑屏,它带我到应用程序的第一页,它不会崩溃只显示黑屏。
这是xml文件中的imageview代码:
<ImageView
android:id="@+id/ImageSuccess"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_gravity="center"
android:layout_marginBottom="20dip"
android:layout_marginTop="20dip"
android:scaleType="centerInside"
android:src="@drawable/image1" />
在这里我在java文件中更改了imageview:
ImageView myImage= (ImageView) findViewById(R.id.ImageSuccess);
if(userVlue.equals("SCHOOL")){
myImage.setImageResource(R.drawable.image1);
}
else if(userVlue.equals("CAR")){
myImage.setImageResource(R.drawable.image2);
}
else if(userVlue.equals("TOY")){
myImage.setImageResource(R.drawable.image3);
}
答案 0 :(得分:1)
myImage或userVlue中的一个未正确设置,可能为null。 调试和共享日志。您的部分活动可能因为nullpointexception而被破坏,因此返回到回溯中的主要活动。
我尝试使用示例应用,您的逻辑运行正常。
您正在处理某些UI元素上的用户操作,当您执行findViewById时,cotext就是该UI元素,因此此方法会在其子元素中搜索ImageSuccess。尝试以rootlayout的形式提供页面布局并执行rootlayout.findViewById(&#34; ImageSuccess&#34;);
答案 1 :(得分:0)
我终于找到了解决方案,因为图像只在可绘制文件中出现黑屏,所以我需要在所有drawbridge文件夹中添加图像,例如drawable-ldp,drawable-ldpi等....所以该应用可以使用不同的手机尺寸。