如果单击一个按钮,如何使用for循环将图像更改为数组中的下一个图像。目前我在点击方法中有这个。
int[] Pics = {R.drawable.pic1, R.drawable.pic2, R.drawable.pic3};
for (int i=0; i<Pics.length; i++){
mainpic.setImageResource(Pics[i]);
}
问题是当点击下一个按钮时,它只会停留在第一个图像上,或直接进入最后一个图像。
答案 0 :(得分:0)
我完全不理解......当你点击下一张图片的下一个按钮时,你写道它不起作用......但是什么不起作用?这是 for loop ...它将循环到数组的末尾并将图像设置为其中的最后一个图像 ...您需要定义一个类变量如
int[] Pics = {R.drawable.pic1, R.drawable.pic2, R.drawable.pic3};
int i = 0;
mainpic.setImageResource(Pics[i]);
然后在下一个按钮 onClick 方法..
i++;
if(i >=3) {
i = 0;
}
mainpic.setImageResource(Pics[i]);
答案 1 :(得分:0)
尝试这个你缺少新代码[]
的代码块int[] Pics = new int[]{R.drawable.pic1, R.drawable.pic2, R.drawable.pic3};
并在循环内部使用
int i = 0;
onClick 方法
mainpic.setImageResource(Pics[i]);
i++
答案 2 :(得分:0)
你不需要为此循环。处理onClick()中的图像更改:
public void onClick(View view)
{
if (view.getId() == R.id.<ButtonId>)
{
mainpic.setImageResource(Pics[currentImageIndex]);
currentImageIndex = (currentImageIndex + 1) % Pics.Length;
}
}
PS:currentImageIndex是一个类变量。 %
操作允许您以循环方式更改图像。