我有 20 个带有背景图像集的图像视图。
当用户点击一张图片然后点击第二张图片时,我希望这两个
imageviews 可以交换它们的图像背景。
使用我构建的代码,我知道只有点击的第一张图片会更新他的背景。
private View z; //view for temporary save the first clicked image
public ImageView[] images = new ImageView[20]; //array with my imageviews
public void onClick(View v) {
if (attivo == false) {
attivo = true;
z = v; } //save the clicked view to a temporary one
else {
//we enter here when we click on the second image
//this cycles search inside the array which imageview
//has the same ID of the saved one or the new one (the first/second image clicked)
for (int h = 0; h<20; h++) {
if (images[h].getId()== z.getId()) {
images[h].setBackgroundDrawable(v.getBackground());}
}
for (int h = 0; h<20; h++) {
if (images[h].getId()== v.getId()) {
images[h].setBackgroundDrawable(z.getBackground());}
}
attivo = false;
}
}
第一个周期有效!将第二个背景设置为单击的第一个 imageview。
第二个循环,即使执行了命令,也不行!背景始终是原始的。
我知道我可以通过一些不同的方式来做到这一点,比如使用 src 而不是背景,或者
网格视图。但请我想知道为什么这段代码不能完全工作。