代码之家  ›  专栏  ›  技术社区  ›  Delyan

ListView并从项中的子视图传播单击事件

  •  2
  • Delyan  · 技术社区  · 15 年前

    我有一个带有自定义项的列表视图-3个imageview和一个TextView。我有个电话 setItemsCanFocus(true) ,因此我可以使图像视图可单击。我目前正在使用SimpleAdapter填充视图。

    我想启动AdapterView onItemClick 单击其中一个子视图时的事件。这个 onItemClickListener 接收一个视图作为第二个参数,该参数可用于标识单击了哪个子视图。坦率地说,我本以为这是默认行为,但不幸的是,事实并非如此。

    是否有任何方法可以实现这种行为而不直接破坏封装(即创建一个包含对其视图的引用的适配器)?

    从列表项中的视图处理事件的公认方法是什么?如何避免适配器对ListView了解过多?

    2 回复  |  直到 15 年前
        1
  •  3
  •   Romain Guy    15 年前

    不幸的是,您必须在对单个子级使用onItemClick()或onClick()之间进行选择。但是,一种方法是使每个项目的顶层视图可单击。

        2
  •  4
  •   MByD    13 年前

    android:addStatesFromChildren="true" 在xml的listview上,将对子元素的单击发送到 onItemClick 中的方法 onItemClickListener 已连接到您的listview。