ListView.setOnItemClickListener无效

如果ListView中的单个Item的view中存在checkbox,button等view,会导致ListView.setOnItemClickListener无效,

事件会被子View捕获到,ListView无法捕获处理该事件.

解决方法:

在checkbox、button对应的view处加Android:focusable="false"
   android:clickable="false" android:focusableInTouchMode="false"

其中focusable是关键

从OnClickListener调用getSelectedItemPosition(),Click 和selection 是不相关的,Selection是通过D-pad or trackball 来操作的,Click通常是点击操作的。

arg2参数才是点击事件位置的参数

第二种方法 就是在自己的getView中

convertView = mInflater . inflate ( R . layout . list_item_text , null );  
convertView . setClickable ( true );  
convertView . setOnClickListener ( clickListener );  
public OnClickListener myClickListener = new OnClickListener () {  
public void onClick ( View v ) {  
                  //code to be written to handle the click event  
    }  
};

时间: 2024-11-29 17:40:15

ListView.setOnItemClickListener无效的相关文章

ListView setOnItemClickListener无效原因分析

如果在ListViewItem中有Button或者Checkable的子类控件的话,那么默认focus是交给了子控件,而ListView的Item能被选中的基础是Item本身 能够获取Focus,所以点击Item无法获取点击响应.可以通过以下两种方法之一进行解决: 1.在button.checkbox对应的view处加上 android:focusable="false" android:clickable="false" android:focusableInTo

ListView.setOnItemClickListener、setOnCreateContextMenuListener无效

如果ListView中的单个Item的view中存在checkbox,button等view,会导致ListView.setOnItemClickListener无效, 事件会被子View捕获到,ListView无法捕获处理该事件. 解决方法: 在checkbox.button对应的view处加android:focusable="false"   android:clickable="false" android:focusableInTouchMode=&quo

ListView.setOnItemClickListener 点击无效

如果ListView中的单个Item的view中存在checkbox,button等view,会导致ListView.setOnItemClickListener无效, 事件会被子View捕获到,ListView无法捕获处理该事件. 解决方法: 在checkbox.button对应的view处加android:focusable="false"    android:clickable="false"android:focusableInTouchMode=&quo

ListView.setOnItemClickListener不起作用的原因

ListView.setOnItemClickListener不起作用的原因是item的layout中对以下两个属性设置为true: android:focusable="true" android:focusableInTouchMode="true" 将其改为false或者不设置(默认为false)即可: android:focusable="false" android:focusableInTouchMode="false&qu

ListView焦点

如果ListView中的单个Item的view中存在checkbox,button等view,会导致ListView.setOnItemClickListener无效, 事件会被子View捕获到,ListView无法捕获处理该事件. 解决方法: 第一种方法: 在checkbox.button对应的view处加android:focusable="false" android:clickable="false" android:focusableInTouchMode

Listview中checkBoxe的多选

注意点:Listview的item中存在checkBox , radiobutton,会导致ListView.setOnItemClickListener无效. 原因:    事件会被子View捕获到,ListView无法捕获处理该事件. 解决方法:在子view的xml中设置如下属性: android:focusable="false"                 android:clickable="false" android:focusableInTouc

案例:ListView中checkbox错位问题及onCreateContextMenu失效问题

本文涉及两个问题: ListView中checkbox错位问题 oncreateContextMenuListener失效问题 activity_listview_item.xml: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layo

Android开发之PullToRefresh的Click点击事件的监听实现长按删除Item

本文为原创博客,出自http://blog.csdn.net/minimicall 到今天为止,搜芽的卖家版本应该来说已经基本完成,攻坚克难的一路过来.速度也控制的比较好. 项目过程进度 从任务分配量上来看,基本还是我个人英雄主义.接下来这样不行.但暂时也没办法,师弟还需要一个学习的过程.智质不错,而且态度端正.相信搜芽买家,他就可以承担更多的开发任务了. 接下来进入正题,说我们的PullToRefresh的点击事件.其实,我是想做长按进入删除的. 见效果图.当然这个是我做出来之后的了,但做出来

android开发中遇到的问题汇总(五)

127.ANDROID仿IOS时间_ANDROID仿IOS弹出提示框 http://dwtedx.com/itshare_297.html 128. Android TextView drawableLeft 在代码中实现 方法1 Drawable drawable= getResources().getDrawable(R.drawable.drawable); /// 这一步必须要做,否则不会显示. drawable.setBounds(0, 0, drawable.getMinimumWi