@newdancer

Как получить доступ к imageview, находящемуся в listview?

Как получить доступ к imageview, находящемуся в listview?
У меня в listview находятся 2 imageview на каждый item. По клику на картинку я на ней рисую рейтинг. Для этого мне необходим сам imageview? я получаю Через tag
Получить таким образом:
ImageView imgl= (ImageView) view.findViewById(R.id.imageLeft).findViewWithTag(pos);

так как view не знает значений tag предыдущих item кроме последнего
  • Вопрос задан
  • 228 просмотров
Пригласить эксперта
Ответы на вопрос 2
Meehalkoff
@Meehalkoff
public static View getViewByPosition(int pos, ListView listView) {
        final int firstListItemPosition = listView.getFirstVisiblePosition();
        final int lastListItemPosition = firstListItemPosition + listView.getChildCount() - 1;

        if (pos < firstListItemPosition || pos > lastListItemPosition ) {
            return listView.getAdapter().getView(pos, null, listView);
        } else {
            final int childIndex = pos - firstListItemPosition;
            return listView.getChildAt(childIndex);
        }
Ответ написан
zagayevskiy
@zagayevskiy Куратор тега Java
Android developer at Yandex
Например, когда в методе getView() :
View getView(...) {
    final ImageView image = ...;
    otherImage.setOnClickListener(new View.OnClickListener(){
            public void onClick(...){
                 //используем ссылку на image
            }
    }
    ...
}

Аналогично можно сделать клик листенер не анонимным классом, явно передавая в него ссылку на вью.
Если же клик происходит по той же вью, с которой ты хочешь работать, то всё ещё проще:
image.setOnClickListener(new View.OnClickListener(){
    public void onClick (View v){
        ImageView image = (ImageView) v;
        // работаем с этим же image
    }
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы