以下代码给了我一个错误
public class SuperImage3Activity extends Activity
{
ImageView image1, image2;
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
image1 = (ImageView)findViewById(R.drawable.sourceimage1); // error here
image2 = (ImageView)findViewById(R.drawable.sourceimage2); // error here
}
我确实创建了一个名为drawable的目录,并在目录中放置了sourceimage1.jpg和sourceimage2.jpg。
Eclipse给出的建议是,
“从ADT 14开始,资源字段(例如doraemon)在库对象中定义时不再是常量。 这对于使库项目可以重新编译而不重新编译是必要的。
这样做的一个结果是您无法再在switch语句中直接使用这些字段。 您必须使用if-else链 “
答案 0 :(得分:2)
R.id.imageview1
R.id.imageview2
您已经在res / layout中创建了Xml布局,您可以在其中链接您的窗口小部件或视图或任何其他控件,或者您可以动态地进行控制。像这样
ImageView imageView1=new ImageView(this);
imageView1.setImageResource(R.drawable.sourceimage1);
答案 1 :(得分:0)
findViewById
用于查找您正在调用该方法的视图(通常是活动)的视图。
基本上它的完成方式是:(按顺序)
android:id="@+id/your_id_here"
,或者如果您的布局以编程方式完成,则为setId(XX)
)setContentView
)findViewById
。 findViewById
不与资源本身一起用作参数(您的可绘制对象)。