我正在尝试在运行时更新imageButton的图像。我有一个switch语句,用于检查从另一个活动传递的ID。我知道switch语句正在工作,因为正确的ID被传递给TextView。
我一直在搜索并查看一些使用ImageView的示例,其他人使用ImageButton。正如你在下面看到的那样,我已经尝试了两种方式而且都没有工
XML布局:
<ImageButton android:visibility="gone" android:id="@+id/imageButton" android:src="@drawable/defaultimage" android:layout_width="97dp" android:layout_height="95dp"></ImageButton>
<TextView android:visibility="gone" android:text="TextView" android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true"></TextView>
Java代码:
case 1:{
// Location 1
ImageView ImageButton = (ImageView)findViewById(R.id.imageButton);
ImageButton .setImageResource(R.drawable.image1);
ImageButton .setVisibility(0);
TextView Test = (TextView)findViewById(R.id.textView);
Test.setVisibility(0);
Test.setText("ID passed is" + id);
break;
}
case 2:{
// Location 2
ImageButton ImageButton = (ImageButton)findViewById(R.id.imageButtonGhostCamLocation);
ImageButton .setBackgroundResource(R.drawable.image2);
ImageButton .setVisibility(0);
TextView Test = (TextView)findViewById(R.id.textView);
Test.setVisibility(0);
Test.setText("ID passed is" + id);
break;
更新
搞定了!我刚从xml布局中的ImageButton中删除了android src,现在工作正常。谢谢你的帮助!
答案 0 :(得分:2)
替换此
ImageButton imageButton = (ImageButton)findViewById(R.id.imageButton);
imageButton .setImageResource(R.drawable.image1);
imageButton .setVisibility(0);
您在xml中使用ImageButton
并在Java中将其作为ImageView
答案 1 :(得分:1)
您的代码的逻辑似乎是正确的(除非您的原始代码中有ImageButton ImageButton
等有趣的内容)。问题必定在其他地方。
如果从布局中删除android:visibility="gone"
,您能看到该按钮吗?
顺便说一下,而不是:
setVisibility(0);
使用
setVisibility(View.VISIBLE);
这样它更具可读性。
答案 2 :(得分:0)
不允许使用像此ImageButton这样的基本函数作为变量。 使用此代码
private ImageButton myButton;
onCreate()中的
myButton = (ImageButton) findViewById(R.id.imageButton);
和代码中的myButton变量。
case 1:{
// Location 1
myButton .setImageResource(R.drawable.image1);
my .setVisibility(0);
TextView Test = (TextView)findViewById(R.id.textView);
Test.setVisibility(0);
Test.setText("ID passed is" + id);
break;
}
case 2:{
// Location 2
myButton.setBackgroundResource(R.drawable.image2);
my.setVisibility(0);
TextView Test = (TextView)findViewById(R.id.textView);
Test.setVisibility(0);
Test.setText("ID passed is" + id);
break;