2015-03-12 2 views
0

Мне нужно изменить ресурс, используемый в ImageView внутри строки ListView. Я использую это:получить subView внутри макета строки ListView

int wantedPosition = 10; // Whatever position you're looking for 
int firstPosition = listView.getFirstVisiblePosition() - listView.getHeaderViewsCount(); // This is the same as child #0 
int wantedChild = wantedPosition - firstPosition; 
// Say, first visible position is 8, you want position 10, wantedChild will now be 2 
// So that means your view is child #2 in the ViewGroup: 
if (wantedChild < 0 || wantedChild >= listView.getChildCount()) { 
Log.w(TAG, "Unable to get view for desired position, because it's not being displayed on screen."); 
return; 
} 
View wantedView = listView.getChildAt(wantedChild); 

, если я ищу с findViewById внутри wantedView, я не нахожу ImageView, что я ищу. Как я могу ссылаться на этот ImageView, чтобы установить другой ресурс?

+0

Какой адаптер вы используете для этого ListView? Это не то, как вы взаимодействуете с представлениями внутри элемента списка. –

+0

Пользовательский ArrayAdapter, но там я нахожусь в Activity. Я не хочу получать доступ к элементу строки внутри адаптера. – fustalol

ответ

0

быстрый способ: используйте setTag(position) (или getItem или все, что вы хотите установить в качестве метки) для View в адаптере (getView метод или относительное) и дальнейшее использование listView.findViewByTag

Смежные вопросы