Использование цикла for для установки ресурсов изображения для нескольких видов изображений - PullRequest
0 голосов
/ 08 марта 2012

Я пытаюсь использовать цикл for для установки ресурсов изображения для нескольких изображений. Я знаю, что решение, которое я нашел, не сработает, и я знаю, почему. Мой вопрос: что я могу использовать вместо этого? Просто чтобы прояснить это, только некоторые изображения будут обновлены в зависимости от того, что содержит areaArray. например 4,7,9 это означает только изображения iv_4, iv_7, iv_9.

        iv_0 = (ImageView) ViewLameness.findViewById(R.id.iv_0);
    iv_1 = (ImageView) ViewLameness.findViewById(R.id.iv_1);
    iv_2 = (ImageView) ViewLameness.findViewById(R.id.iv_2);
    iv_3 = (ImageView) ViewLameness.findViewById(R.id.iv_3);
    iv_4 = (ImageView) ViewLameness.findViewById(R.id.iv_4);
    iv_5 = (ImageView) ViewLameness.findViewById(R.id.iv_5);
    iv_6 = (ImageView) ViewLameness.findViewById(R.id.iv_6);
    iv_7 = (ImageView) ViewLameness.findViewById(R.id.iv_7);
    iv_8 = (ImageView) ViewLameness.findViewById(R.id.iv_8);
    iv_9 = (ImageView) ViewLameness.findViewById(R.id.iv_9);
    iv_10 = (ImageView) ViewLameness.findViewById(R.id.iv_10);
    iv_11 = (ImageView) ViewLameness.findViewById(R.id.iv_11);
    iv_12 = (ImageView) ViewLameness.findViewById(R.id.iv_12);
    iv_13 = (ImageView) ViewLameness.findViewById(R.id.iv_13);

    for (int i = 0; i < areasArray.length; i++) {

        int[] images = { R.drawable.f0sc, R.drawable.f1sc, R.drawable.f2sc,
                R.drawable.f3sc, R.drawable.f4sc, R.drawable.f5sc,
                R.drawable.f6sc, R.drawable.f7sc, R.drawable.f8sc,
                R.drawable.f9sc, R.drawable.f10sc, R.drawable.f11sc,
                R.drawable.f12sc, R.drawable.f13sc };

        String image = "iv_" + areasArray[i];

        image.setImageResource(images[i]);

    }

1 Ответ

3 голосов
/ 08 марта 2012

Это должно работать ..

ImageView[] images = new ImageView[] { iv_1, iv_2, ... };
int[] res = new int[] { R.id.iv_1, R.id.iv_2, ... };
int[] drawables = new int[] { R.drawable.f0sc, R.drawable.f1sc, ... };
for (int i = 0; i < images.length; i++) {
    images[i] = (ImageView) findViewById(res[i]);
    images[i].setImageResource(drawables[i]);
}
...