Объясните пожалуйста в чём ошибка.
Хочу использовать вложенный оператор switch
, но где то явно что то упускаю, суть в том что при нажатии на одну из 4 картинок снизу, сверху должна появиться та на которую нажал, а оно не выходит, и ошибок не выдаёт.
Может ли это быть из за того что button
не относиться к View
?
public void onClick(View v) {
switch(v.getId()) {
case R.id.button:
switch(v.getId()) {
case R.id.imageView1:
mainImage.setImageResource(R.drawable.image1);
break;
case R.id.imageView2:
mainImage.setImageResource(R.drawable.image1);
break;
case R.id.imageView3:
mainImage.setImageResource(R.drawable.image1);
break;
case R.id.imageView4:
mainImage.setImageResource(R.drawable.image1);
break;
}
break;
case R.id.button2:
switch(v.getId()) {
case R.id.imageView1:
mainImage.setImageResource(R.drawable.image2);
break;
case R.id.imageView2:
mainImage.setImageResource(R.drawable.image2);
break;
case R.id.imageView3:
mainImage.setImageResource(R.drawable.image2);
break;
case R.id.imageView4:
mainImage.setImageResource(R.drawable.image2);
break;
}
break;
case R.id.button3:
switch(v.getId()) {
case R.id.imageView1:
mainImage.setImageResource(R.drawable.image3);
break;
case R.id.imageView2:
mainImage.setImageResource(R.drawable.image3);
break;
case R.id.imageView3:
mainImage.setImageResource(R.drawable.image3);
break;
case R.id.imageView4:
mainImage.setImageResource(R.drawable.image3);
break;
}
break;
}
}
public void photo(){
mainImage = (ImageView) findViewById(R.id.mainImageView);
imageView1 = (ImageView) findViewById(R.id.imageView1);
imageView2 = (ImageView) findViewById(R.id.imageView2);
imageView3 = (ImageView) findViewById(R.id.imageView3);
imageView4 = (ImageView) findViewById(R.id.imageView4);
imageView1.setOnClickListener(this);
imageView2.setOnClickListener(this);
imageView3.setOnClickListener(this);
imageView4.setOnClickListener(this);
}
}
При нажатии на какой-либо виджет (в Вашем случае кнопка или картинка), вызывается коллбэк onClick(View v)
, где View v
соответствует нажатому виджету.
Насколько я понимаю, onClick(View v)
у Вас срабатывает при нажатии на картинку. В таком случае v.getId()
не сможет отдать Вам идентификатор R.id.button
(и остальные идентификаторы, соответствующие другим кнопкам).
суть в том что при нажатии на одну из 4 картинок снизу, сверху должна появиться та на которую нажал, а оно не выходит, и ошибок не выдаёт.
Для решения этой задачи вложенный switch
не нужен, достаточно всего одного switch
'а:
public void onClick(View v) {
switch(v.getId()) {
case R.id.imageView1:
mainImage.setImageResource(R.drawable.image1);
break;
case R.id.imageView2:
mainImage.setImageResource(R.drawable.image2);
break;
case R.id.imageView3:
mainImage.setImageResource(R.drawable.image3);
break;
case R.id.imageView4:
mainImage.setImageResource(R.drawable.image4);
break;
}
}
}
Может ли это быть из за того что button
не относиться к View
?
Button
как раз относится к View
:
class Button extends TextView {...}
class TextView extends View {...}
поэтому Button
можно скастовать к View
.
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Класс в котором формируется объект ProcessBuilder:
Есть ViewPager в котором RecyclerView формируется список, используется FragmentStatePagerAdapter который сразу формирует несколько фрагментовСитуация такая,...
Доброй ночиРисую линию из квадратов jbutton на jpanel, когда собирается - линию убираю, jbutton - те что выше отпускаю
Запускаю программу и когда строчка до ходит driverget("url"); открывается Google с ссылкой на data:, а потом Код: