#java #android #loops #for-loop
Вопрос:
Допустим, у меня есть 150 фотографий. Мне нужно изменить их видимость или даже ресурс с помощью цикла, чтобы не делать этого для каждой фотографии, набрав текст.
Я попытался сделать это так:
final ImageView randompic1 = (ImageView) findViewById(R.id.pic1);
final ImageView randompic2 = (ImageView) findViewById(R.id.pic2);
final ImageView randompic3 = (ImageView) findViewById(R.id.pic3);
final ImageView randompic4 = (ImageView) findViewById(R.id.pic4);
//(etc.)
for (int j = 0; j <=150; j ){
randompic(j).setVisibility(View.INVISIBLE);
};
Поэтому я хотел бы изменить его в цикле следующим образом: randompic(j).setVisibility(Просмотр.НЕВИДИМЫЙ) для randompic1, randompic2, randompic3 и т.д. В каждом цикле. Java не принимает такой тип ввода, как JavaScript. Я не знаю, как найти хороший способ написать такой цикл.
Комментарии:
1. установка 150 различных значений true/false уже кажется неэффективной
Ответ №1:
Добавьте свои изображения в список и измените видимость каждого элемента в этом списке следующим образом:
List<ImageView> randompics = new ArrayList<>();
randompics.add((ImageView) findViewById(R.id.pic1));
randompics.add((ImageView) findViewById(R.id.pic2));
randompics.add((ImageView) findViewById(R.id.pic3));
randompics.add((ImageView) findViewById(R.id.pic4));
//(etc.)
for (int j = 0; j <= randompics.size(); j ) {
randompics.get(j).setVisibility(View.INVISIBLE);
};
Вместо классического for
цикла вы также можете использовать foreach
вот так:
randompics.foreach(pic -> pic.setVisibility(View.INVISIBLE));