Android-ListView中的组件Button的OnClick事件触发时机
Android开发时,ListView中的组件Button的OnClick事件必须在ListView之外的组件事件触发后才能触发?
此处ListView无OnItemClick事件,而且ListView中的Button的OnTouch事件可以实时触发,OnClick事件就被阻塞了,需要等待别的事件触发之后才能触发,十分不解,要贴个代码吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
我一般是给BUTTON设置TAG,通过判断list中的点击对象的tag和button的tag判断被触发的button从而做出动作。
可能问题被你复杂化了或者原因并非出在这里,ListView中的Button的OnClick事件和一般的Button的OnClick事件没有差别,就是在Button被点击之后执行绑定在Button上的监听器中的内容,跟ListView外的组件事件没有关系。
你好,这个问题你的思路是错误的。
你应该把触发的内容写到的list的相关adapter中的getView函数里面,然后通过list的ID来判断点击是哪个。从而做出动作。
【0】button的 onClick 事件并不需要外部的事件触发后才能触发,你可以看到只要你去点击 button,就可以触发 onClick 事件,但是有例外,也就是你第2个问题
【1】关于onTouch 会阻塞 onClick 事件,是因为 onTouch 的返回值,可以阻止事件的传递,详情 请点击这里
这个问题我也经常遇到。。其实很简单的说。。
其实就是事件分发的时候被屏蔽了。。
只需要将item布局的Button设置android:focusable="false"
或者
在item的xml文件中的根布局中设置 android:descendantFocusability="blocksDescendants"
就可以了。。
其他控件也是同理,比如:GridView..等等