码迷,mamicode.com
首页 > 移动开发 > 详细

Android中onItemClick事件不响应

时间:2014-12-13 18:01:32      阅读:254      评论:0      收藏:0      [点我收藏+]

标签:android   listview   onitemclick   不响应   

最近在做一个点菜的Android应用,要用到ListView,我希望可以通过ListView中的Button对点过的菜进行操作如下图

bubuko.com,布布扣

我希望通过点击加减改变菜品的总数量和左边所显示的菜品总价格

可是当我使用onItemClick方法时发现ListView不响应。。

这实在很坑

在网上找了很久看了无数篇的博文,解决方案大体以下两种:

1.将ListView的Item Layout中的所有子控件focusable属性设置为false
2.将item layout的根控件设置属性(推荐轻量级特别是修改别人的代码)
android:descendantFocusability=”blocksDescendant”
这样Item Layout就屏蔽了所有子控件获取Focus焦点的权限,不需要针对Item Layout中的每一个控件重新设置focusable属性
原因在于:
若你的item中有button或者checkbox等控件,默认情况下焦点focus是最先交给这些子控件,而ListView的Item能被选中的基础是它能获取Focus焦点,所以,我们可以通过将ListView中Item中包含的所有控件的focusable属性设置为false,这样ListView的Item就自动获得了Focus焦点的权限,也就可以被选中了,同时也会响应onItemClickListener中的onItemClick()方法。

还没结束,我做了无数尝试之后依然不响应。。
最后发现问题的原因在于ListView的样式文件中,我使用了HorizontalScrollView
而使用该种布局会导致以上的两种解决方案均失效。。
原因不明,假如有大神看到本菜鸟的博文,希望能指点一二。。

还有在ListView的样式文件的根布局假如使用了match_parent属性
那么在你的整体展示的<ListView/>这个标签中必须使用这个属性。。
否则就会报错。。

Android中onItemClick事件不响应

标签:android   listview   onitemclick   不响应   

原文地址:http://blog.csdn.net/u012816041/article/details/41910993

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!