Ответ 1
d
не является id
. Я предлагаю вам сделать вот так:
// same listener for everyone
Imagepassone.setOnClickListener(imgButtonHandler);
Imagepasstwo.setOnClickListener(imgButtonHandler);
Imagepassthree.setOnClickListener(imgButtonHandler);
//...
// switch id for each view inside the same listener
View.OnClickListener imgButtonHandler = new View.OnClickListener() {
public void onClick(View v) {
// check the view clicked by id
if(v.getId() == R.id.Imagepassone) {
// do something like change background
if(image.getBackground() != getResources().getDrawable(R.drawable.passselect)) {
image.setBackgroundResource(R.drawable.passselect);
} else if((image.getBackground() == getResources().getDrawable(R.drawable.passselect)) &&
(image2.getBackground() != getResources().getDrawable(R.drawable.passselect)) {
image.setBackgroundResource(R.drawable.passselect);
}
} else if(v.getId() == R.id.Imagepasstwo) {
// do something
} else if(v.getId() == R.id.Imagepassthree) {
// do something
}
}
};
Но я думаю, что это не правильно.
Как я вижу и понимаю, ваше изображение (изображение, изображение2, изображение3) - это верхнее округленное изображение, верно? Если да, вы можете попробовать каждый клик изменить шаг этих значков выше и изменить их фон. Лучше я подумаю сделать это с помощью локального int
и изменить шаг. Что-то вроде этого должно работать:
// local variable just below ImageView image3; line
private int nbStep = 0;
// ...
Imagepassone.setOnClickListener(imgButtonHandler);
Imagepasstwo.setOnClickListener(imgButtonHandler);
Imagepassthree.setOnClickListener(imgButtonHandler);
// listener
View.OnClickListener imgButtonHandler = new View.OnClickListener() {
public void onClick(View v) {
// check id like above
if(v.getId() == R.id.Imagepassone) {
// augment the local int
nbStep++;
// call a general method to check the background with int
changeStepBackground(nbStep);
}
}
});
public void changeStepBackground(int i) {
// four step switch
switch(i) {
case 1:
image.setBackgroundResource(R.drawable.passselect);
break;
case 2:
image2.setBackgroundResource(R.drawable.passselect);
break;
case 3:
image3.setBackgroundResource(R.drawable.passselect);
break;
case 4:
image4.setBackgroundResource(R.drawable.passselect);
break;
}
}
Надеюсь, я понимаю ясно, и это помогает.