Android заполнить массив с ImageViews - PullRequest
0 голосов
/ 05 декабря 2011

Мне нужен массив изображений, но я не знаю, как его заполнить объектом типа imageview.

 ImageView[] forAdapter = new ImageView[imageIds.size()];
 for(int i = 0; i < imageIds.size(); i++)
 {
                    ImageView mImageView = new ImageView(context);
                    forAdapter[i] = mImageView.setImageDrawable(((imagesPulled.get(imageIds.get(i)))));
}

это не работает, потому что .setImageDrawable не возвращает изображение., и я не знаю ни одного объекта, который на самом деле это делает!

Я подумал об использовании drawables в массиве, но в конечном итоге я устанавливаю arrayadapter для listview, и я не могу сделать R.layout с drawables (яя получу исключение приведения класса, потому что файл xml использует ImageView (не рисуемый тип), поэтому у меня есть только ImageViews для помещения в массив - если я не подхожу к проблеме неправильно.

Ответы [ 2 ]

6 голосов
/ 05 декабря 2011

Ваш код почти там! Я просто сделаю небольшое изменение и прокомментирую это ниже:

 ImageView[] forAdapter = new ImageView[imageIds.size()];
 for(int i = 0; i < imageIds.size(); i++)
 {
                    forAdapter[i] = new ImageView(context);
                    forAdapter[i].setImageDrawable(imagesPulled.get(imageIds.get(i)));
}

Во-первых: если вы хотите инициализировать forAdapter [i], вам не нужно создавать новую переменную и присваивать ей. Просто сделай это там:

forAdapter[i] = new ImageView(context);

Установка изображения (используя setImageDrawable, setImageResource и т. Д.) Ничего не возвращает. Это операция, которую вы выполняете над самим изображением, поэтому все, что вам нужно сделать, это вызвать метод из переменной, которую вы хотите изменить:

forAdapter[i].setImageDrawable(imagesPulled.get(imageIds.get(i)));

Вы сделали :) Если у вас есть какие-либо сомнения, просто спросите в комментариях.

Надеюсь, это поможет.

2 голосов
/ 05 декабря 2011

Ваш mImageView - это сам ImageView.

Итак, forAdapter [i] = mImageView должен работать нормально. Если вы используете дополнительные действия, вы можете выполнить их до назначения.

...