在我的应用程序中,我以编程方式创建了一个图像视图。我动态创建了相同类型的10个图像。每当我点击图像我想将图像更改为另一个图像时,如果我再按一次它会转到上一个图像。我为此编写了代码。但每当我点击特定图像时,更改将应用于另一个图像。
im = new ImageView(this);
@Override
public void onClick(View v) {
boolean flag = true;
for (int k=0;k<sheetdetails.size();k++){
if(sheetdetails.get(k).get("SeatNo").equalsIgnoreCase(v.getTag().toString())&&sheetdetails.get(k).get("IsAvailable").equalsIgnoreCase("true")){
if(flag)
{
im.setImageResource(R.drawable.seat);
flag=false;
}
else
{
im.setImageResource(R.drawable.selectedseat);
flag=true;
}
}
}
}
答案 0 :(得分:0)
目前程序执行if分支以及else分支,因为你输入了flag = true的方法;
if(flag)
{
im.setImageResource(R.drawable.seat);
flag=false;
}
else
{
im.setImageResource(R.drawable.selectedseat);
flag=true;
}
所以你输入第一个if,你设置了标志false,所以你也输入了else分支。您可以更改程序的流程或初始化临时变量。
当你这样做时,if / else构造是不必要的,因为你每次都输入。