android listview点击后没有反应原因分析

本文探讨了Android ListView自定义过程中遇到的点击事件失效问题,并详细分析了两种常见原因:一是根节点设置了android:clickable=true导致焦点丢失;二是子控件如Button或CheckBox获取焦点引发的问题。文中提供了具体的解决方案。

http://zoulu1.blog.163.com/blog/static/46733149201271114327888/


最近做listview的自定义,突然以下代码没有效果:

listView.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // TODO Auto-generated method stub Toast.makeText(listviewdemo.this, "你点了第"+position+"项", Toast.LENGTH_LONG).show(); } });

经过分析,发现是在listitem xml布局中(代码如下图),

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:clickable="true" android:id="@+id/all" android:orientation="horizontal" >

这个根节点,因为加了 android:clickable="true",所以导致焦点丢失,所以点击没有效果,删除之,果断可以。

二 还有一种原因就是:有些同学的listview中有button或checkbox等控件,这些控件获得了焦点后,也会导致listview不能点击。解决办法:设置设置checkbox或button的xml属性 

android:focusable="false"

这样即可解决listview  item不能点击的问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值