ListView同时响应itemclick事件和item控件的onClickListener时间的解决办法
来源:互联网 发布:java怎么输入数组 编辑:程序博客网 时间:2024/05/16 06:37
listview可以根据自己的需求,重写baseadapter ,实现自己的布局及数据,但是当我们在自己的布局中加入了button或者ImageButton,还有其他比如checkbox,radiobutton等控件时,发现listview不在响应onitemclick事件,这是因为buton等控件优先获得focus,也就是说listview的item根本就获取不到focus,所以导致onitemclick时间不能触发。
一、
如果listview item里只有一个buton类似的控件,我以前用以下的方法处理冲突问题,最后用listView.setOnClickListener实现点击后跳转页面、弹出对话框等功能。
<Button android:layout_width="wrap_content" android:layout_height="wrap_content" <span style="color:#FF0000;"> android:focusable="false" android:focusableInTouchMode="false" android:clickable="false"</span>/>
二、如果listview item里有2个或者更多的button类似控件,用这些控件实现不同的功能,这时就在自定义的adapter里实现对应的功能,并且也不对button设置上面的属性控制。
<span style="font-size:18px;">public View getView(final int position, View convertView, ViewGroup parent) {View view =null;ViewHolder holder =null;if(convertView == null){holder = new ViewHolder();view = View.inflate(context, R.layout.score_personal_lv_item, null);holder.btn_delete =(Button) view.findViewById(R.id.btn_delete);holder.btn_update =(Button) view.findViewById(R.id.btn_update);view.setTag(holder);}else{view = convertView;holder = (ViewHolder) convertView.getTag();}holder.btn_delete.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {deleteScore(position);}});holder.btn_update.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {updateScore(position);}});return view;}</span>
三、最近我遇到一个新的需求:listview点击后跳转至新页面,点击item的button要删除数据。这个需求上面的两种方法都不能实现,我查找了资料,才知道有新的解决办法。
注意:在<RelativeLayout>中android:descendantFocusability="blocksDescendants"和button中的android:focusable="false"两个属性设置必须要用。如果不设置,将导致ListView的ItemClick事件将无法触发,该事件被Button的click事件屏蔽了。
<span style="font-size:18px;"><?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:descendantFocusability="blocksDescendants" android:orientation="horizontal" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="你好吗?" android:id="@+id/text" /> <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:focusable="false" android:text="确定" /> </RelativeLayout></span>
最后在activity或者fragment里设置listView.setOnClickListener事件,在继承baseadapter的自定义adapter里设置button.setOnClickListener事件。
0 0
- ListView同时响应itemclick事件和item控件的onClickListener时间的解决办法
- ListView—Item的click事件和Item里的button等子控件的click事件同时生效的解决办法
- ListView不能响应itemclick事件的解决方法
- ListView不能响应itemclick事件的解决方法
- ListView不能响应itemclick事件的解决方法
- ListView不能响应itemclick事件的解决方法
- 去掉listview 的点击效果和Item的click事件和Item里的button等子控件的click事件同时生效的解决办法
- 转:ListView不能响应itemclick事件的解决方法
- ListView 或GridView不能响应itemclick事件的解决方法
- Item的click事件和Item里的button等子控件的click事件同时生效的解决办法
- ListView控件的onItemClick事件和item中Button的onClick事件冲突的解决办法
- ListView的Item内嵌套GridView导致ListView的ItemClick事件无效 [复制链接]
- listview的itemClick监听无响应问题
- ListView ItemClick和Button单击事件冲突的解决
- 问题解决:listview 的itemclick事件无法触发
- ListView中的Item点击事件和子控件的冲突或者item点击没有反应的解决办法
- ListView的item点击事件不响应
- ListView的Item点击事件无响应
- ORA-00600: 内部错误代码, 参数: [kcratr_scan_lastbwr], [], [], [], [], [], [], [], [], [], [], []
- Catalan数总结
- BZOJ 1005 [HNOI2008]明明的烦恼
- 不要62<hdoj2089>
- git 切换到之前的版本上
- ListView同时响应itemclick事件和item控件的onClickListener时间的解决办法
- docker – 你应该知道的10件事
- 求单表序数字段中不连续的最小值
- 编码不统一问题
- the Sum of Cube<hdoj5053>
- HDU 1711 kmp入门
- Android应用界面开发04
- 朴树贝叶斯法
- 最近用到的一些sql命令(持续更新)