0

我有带有嵌套 LinearLayout 和多个 ImageViews 的 row_item.xml。它在 ListView 的每一行中生成 2 x 2 图像网格。在 onClick a 我想知道用户点击了哪个 Image 项目。

在 onClick 方法中,我尝试使用 item.getClass() 查看实际出现的项目,它显示了 LinearLayout。我确信这将是行项中的顶级布局。这是我的行项目骨架布局。我正在寻找一些通用的方法,我可以在其中获取任何深度的点击项目。

<LinearLayout>
       <LinearLayout>
           <ImageView> </ImageView>
           <ImageView> </ImageView>
       </LinearLayout>         

       <LinearLayout>
           <ImageView> </ImageView>
           <ImageView> </ImageView>
       </LinearLayout>         
</LinearLayout>
4

2 回答 2

0

为每个 ImageView 添加以下内容:

android:clickable="true"
android:onClick="myOnClickFunction"

并添加如下代码:

public void myOnClickFunction(final View imageView) {
    // imageView.getId() - actual image view id.
}
于 2013-02-21T13:52:37.340 回答
0

您可以通过在声明 listView 的 xml 中设置适当的选项来设置可点击的图像视图。然后只需将 onclickListeners 添加到您的 imageViews。对我来说有效的解决方案是设置:

clickable
focusable
focusableInTouchMode

。如果你完成了这个,你可以在你的适配器 getView/bindView setonClickListeners 到你的 imageviews。

于 2013-02-21T13:38:55.877 回答