Android, прослушиватель событий?

#android

#Android

Вопрос:

У меня есть цикл, который проходит через массив представлений изображений, добавляя прослушиватель событий к каждому, как я могу узнать, какой вид изображения был нажат внутри прослушивателя?

 imageViewArray[i].setOnClickListener(new View.OnClickListener() {
               public void onClick(View v) {

                   }        
            });
  

Ответ №1:

Разве v параметр onClick метода не содержит ссылку на ImageView ?

Редактировать
Дело в том, что вы не добавляете одного и того же прослушивателя ко всем ImageView s в своем коде — каждый ImageView в вашем массиве получает своего собственного прослушивателя.

В методе прослушивателя onClick передается событие, View вызвавшее событие v , поэтому при работе с v вы работаете с щелчком ImageView .

Чтобы найти индекс ImageView в вашем массиве, вы также можете установить идентификатор, предложенный другими, а затем использовать v.getId() , или вы можете перебрать свой массив и проверить, является ли imageViewArray[i] == v , в каком случае i , индексом вашего ImageView в массиве.

Ответ №2:

установите идентификатор для каждого значения индекса, например: image_view.setId(i);

Комментарии:

1. как мне получить идентификатор в прослушивателе событий?

Ответ №3:

imageView.getId() вернет вам идентификатор, который вы указываете в этом ImageView findViewById() методе. Затем вы можете проверить идентификаторы в блоке коммутатора. Надеюсь, это поможет.