我有一个遍历图像视图数组的循环,为每个图像视图添加一个事件监听器,如何找出在监听器中按下的图像视图?
imageViewArray[i].setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
}
});
答案 0 :(得分:1)
v
方法的onClick
参数是否提供对ImageView
的引用?
修改强>
问题是:您没有向代码中的所有ImageView
添加相同的侦听器 - 数组中的每个ImageView
都有自己的侦听器。
在聆听者的onClick
方法中,引发该事件的View
会在v
中传递,因此在使用v
时,您正在使用所点击的{{} 1}}。
要查找数组中ImageView
的索引,您也可以按其他人的建议设置ID,然后使用ImageView
,或者您可以循环您的数组并检查是否v.getId()
,在这种情况下imageViewArray[i] == v
是数组中i
的索引。
答案 1 :(得分:0)
在索引值上为每个设置id,例如:image_view.setId(i);
答案 2 :(得分:0)
imageView.getId()
会在ImageView
中为您提供findViewById()
的ID
方法。然后,您可以检查交换机块中的ID。希望这会有所帮助。