【发布时间】:2012-08-07 16:20:27
【问题描述】:
我有一个列表视图,它显示每一行/项目的视图列表(一个列表项目可以有例如 2 或 3 个按钮)。所有项目都设置为不可聚焦且不可点击。这种方式点击调用我的 ListView OnClick 的项目。我现在要做的是在真正的点击视图上调用 performClick() (因为它被设置为不可聚焦/可点击),所以什么也没做。这可能吗?我试图找到一种基于单击位置获取视图的方法,但没有找到任何东西,另一方面,列表视图的 onItemClick 单击处理程序似乎也没有获得触摸的 x/y。我知道为此我可以使用 OnTouchEvent 但我将无法知道点击了什么项目,等等...
【问题讨论】:
-
问题有点令人困惑..您想在有人点击任何按钮时执行 onItemClick 吗?反之亦然?
-
对不起。我主要希望当用户单击属于列表视图项(已通过自定义列表数据适配器设置)的视图(例如按钮)时,接收单击的是列表而不是按钮,之后通过 performClick() 或其他方法通知按钮它在我的自定义列表视图项 onclick 处理程序中被单击。我希望现在更清楚了。
-
所以你想同时调用两个控件的 onClick 事件?对吗?
-
是的,但是第二个 onclick 将由我手动调用。流程或多或少是:1)使用自定义数据适配器设置列表视图。 2) 为列表视图设置一个 onclickItem。 3) 使自定义数据适配器创建的所有视图都不可点击(例如 3 个按钮)。 4) 单击列表视图时,我们会在列表中收到 OnItemClick 事件。 5)现在我们测试真正点击了哪个视图(三个按钮之一),然后我们手动通知按钮。很抱歉造成混乱,但有点难以解释。
标签: android android-layout android-widget