Android新手求助:自定义ListView的OnItemClickListener失效
解决ListView OnItemClickListener无效的问题
嘿,作为Android新手遇到这个问题太正常啦,我帮你梳理几个最可能的原因和解决办法,你可以挨个排查:
子项布局里的可点击控件抢占了焦点
如果你的ListView每个item布局里包含Button、CheckBox、设置了clickable的ImageView这类控件,它们默认会获取焦点,导致ListView的item点击事件被拦截。解决办法很简单:
在item布局的根布局标签里添加属性:android:descendantFocusability="blocksDescendants"或者给这些可点击控件单独设置:
android:focusable="false" android:focusableInTouchMode="false"忘记给ListView绑定点击监听
虽然你实现了AdapterView.OnItemClickListener接口,但别忘了在Activity的onCreate方法里给ListView设置监听:listView = findViewById(R.id.your_listview_id); listView.setOnItemClickListener(this); // 这一步新手很容易漏掉!item根布局设置了可点击/可聚焦属性
如果你的item根布局里有android:clickable="true"或者android:focusable="true",会直接消耗掉点击事件,导致OnItemClickListener触发不了。把这两个属性改成false或者直接删掉就行。检查ListView的choiceMode设置
如果你给ListView设置了类似listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE)这类属性,可能会影响点击事件的触发,可以暂时注释掉试试。
你可以先从第一个原因开始排查,这是最常见的情况哦~
内容的提问来源于stack exchange,提问作者Sreyash Gaonkar
相关产品推荐
相关产品推荐

