我想我有一个非常简单的问题,我真的不明白为什么它实际上是一个问题:( 我创建一些图像,然后我将它们添加到表格中。 这工作正常,直到我想多次使用一个图像,然后程序崩溃。 (告诉我我必须先调用removeView(),但我真的不想这样做,对吧?)
现在代码,它为一个测量值选择了一个合适的图像。 它总是添加4个图像。有时corse值相似,则需要多次一个图像。
ImageView imgGreen = new ImageView(this);
ImageView imgYellow = new ImageView(this);
ImageView imgOrange = new ImageView(this);
ImageView imgRed = new ImageView(this);
// allocate Images
imgGreen.setImageResource(R.drawable.green);
imgYellow.setImageResource(R.drawable.yellow);
imgOrange.setImageResource(R.drawable.orange);
imgRed.setImageResource(R.drawable.red);
// add Images
for(int i = 0; i < 4; i++){
switch(controller.array[1][i])
{
case 0: row.addView(imgGreen);
break;
case 1: row.addView(imgYellow);
break;
case 2: row.addView(imgOrange);
break;
case 3: row.addView(imgRed);
break;
default: row.addView(imgRed);
break;
}
}
任何帮助将不胜感激:) 提前谢谢!
问候
答案 0 :(得分:0)
一种解决方案是复制图像资源,然后第二次添加克隆。看起来每个addView调用都需要唯一的对象。
答案 1 :(得分:0)
如果有人有兴趣,请在这里找到合适的解决方案:
for(int i = 0; i < 4; i++){
ImageView img = new ImageView(this);
switch(controller.array[1][i])
{
case 0:
img.setImageResource(R.drawable.green);
break;
case 1:
img.setImageResource(R.drawable.yellow);
break;
case 2:
img.setImageResource(R.drawable.orange);
break;
case 3:
img.setImageResource(R.drawable.red);
break;
default:
img.setImageResource(R.drawable.red);
break;
}
row.addView(img);
}
现在比以前更少的代码:)
问候