#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()
методе. Затем вы можете проверить идентификаторы в блоке коммутатора. Надеюсь, это поможет.