ListView的Item单击无响应

Android自定义ListView单击事件失效的解决方法 因为自带的listView不能满足项目需求,通过实现自己的Adapter去继承ArrayAdapter 来实现自定义ListView的Item项目。 出现点击ListView的每一项都不会执行setOnItemClickListener 里面的onItemClick 方法。 原因是item里面存在一些子控件,默认点击获取的焦点跑去子控件去了,点击失效。 解决办法: 在item的根目录加入android:descendantFocusability=”blocksDescendants” <?xml version=1.0 encoding=utf-8?> <LinearLayout 立即下载

这个问题整了很久,今天终于解决了

问题描述:

点击ListView的Item无效果


问题分析:

Item的布局代码是这样的:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

    <LinearLayout
        android:id="@+id/llRight"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:descendantFocusability="blocksDescendants"
        android:gravity="right"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/btMark"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:background="@android:color/holo_orange_dark"
            android:text="Mark" />

        <Button
            android:id="@+id/btDelete"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:background="@android:color/holo_green_dark"
            android:text="Delete" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/llLeft"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center_vertical"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/tvTitle"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:paddingLeft="10dp"
            android:text="tvTitle" />
    </LinearLayout>

</FrameLayout>
按理说点击这个Item的时候ListView背景应该改变,但是现在什么效果都没有。第一想到的是会不会Item被盖住了,所以给Item设置个padding,运行下padding是有了,但是还是不能点击:

其实始终心里都感觉不会是这个原因。

既然不是这个原因,还会是什么呢?想不到原因,就又把自定义的listview和adapter重新写了一遍,仔细检查了代码,折腾了好久,问题依旧。实在没办了,就用很久以前学习的方法试试吧(虽然这个时候感觉就这几个元素不削用这种方法):把ItemView中的元素全部删除,然后一个一个加入,这个是否发现了问题:当加入两个Button按钮所在布局的时候问题就出现了。会是什么原因呢?也许你可能会想到ListView和Button是不是有冲突之类,但是悲剧的是我压根就没这么想过,原因很简单:我这么干过——在listview中加button,当时没出现过问题,参考这里。然后找同事帮看下,果然是ListView和Button的问题。现在想想,应该是之前写的时候这个问题被别人给屏蔽(解决了),到我这没体现可怜


解决办法:

在Button的parentView的属性中添加: android:descendantFocusability="blocksDescendants" 意思为ViewGroup会阻止他的子view获取焦点。
android:descendantFocusability

Defines the relationship between the ViewGroup and its descendants when looking for a View to take focus.

Must be one of the following constant values.

Constant Value Description
beforeDescendants 0 The ViewGroup will get focus before any of its descendants.
afterDescendants 1 The ViewGroup will get focus only if none of its descendants want it.
blocksDescendants 2 The ViewGroup will block its descendants from receiving focus.

This corresponds to the global attribute resource symbol descendantFocusability.

总结下下:

再遇到这种问题,还是第一时间请教别人吧


强化学习——day16 动态规划算法 动态规划(dynamic programming)是程序设计算法中非常重要的内容,能够高效解决一些经典问题,例如背包问题和最短路径规划。动态规划的基本思想是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到目标问题的解。动态规划会保存已解决的子问题的答案,在求解目标问题的过程中,需要这些子问题答案时就可以直接利用,避免重复计算。本章介绍如何用动态规划的思想来求解在马尔可夫决策过程中的最优策略 阅读详情

相关推荐

【Solidworks学习使用(1)__2022版本保姆级安装方法】

Solidworks 2020安装

coder-kimbell的博客 6271

Android中ListView中的内容第一次点击无效(从第二次点击才有用)的解决办法

GTMD小学期… 跟焦点什么乱七八糟的一点关系也没有 原因是调用了ListView中每个View的OnClick方法 这种调用方法不对。应该调用ListView的onItemClick方法。

世界 2113

Virtuoso集成HspiceD:打通模拟设计全流程的仿真与PEX实战

本文详细介绍了Virtuoso集成HspiceD在模拟设计全流程中的应用,包括仿真与PEX实战。通过无缝衔接Virtuoso和HspiceD,设计师可以在同一环境中完成从原理图设计到PEX后仿真的全流程,大幅提升工作效率。文章还提供了仿真环境配置、前仿真关键设置、PEX全流程详解以及性能调优等实用技巧。

weixin_29271263的博客 98

ListView 中Item点击事件无效的问题

ListView 中Item点击事件无效的问题

灵猪谁仰的专栏 786

告别实车测试:手把手教你用Vector VT平台搭建OBC/DCDC的HIL测试台架

本文详细介绍了如何利用Vector VT平台搭建新能源汽车OBC/DCDC的HIL测试台架,涵盖硬件选型、模型部署到自动化测试的全流程。通过HIL仿真测试技术,工程师可以高效验证动力域关键部件,大幅缩短开发周期并降低成本,特别适合新能源汽车三电系统的开发验证。

weixin_42659194的博客 341

abaqus应力值导出并进行后处理(同一节点多个应力值如何处理?)

Abaqus应力导出: ‘Tools’--- Probe values 在Probe Values里面可以选择需要导出的信息,比如‘Nodes’或者‘Elements’ 如果需要导出多个应力值或者其他信息可以选择‘Components’这个选项。 选择‘Selected’只输出一个正应力S33(对应截图中的) 如果是‘All Direct’,则是输出6个正应力S11, S22, S33, S12, S13, S23 ‘All Principals’输出三个正应力 在输出...

themingyi的博客 5万+

android listview单击,Android自定义ListView无法单击项目

Android自定义ListView无法单击项目所以我有一个自定义的ListView对象。列表项目有两个堆叠在一起的文本视图,加上一个水平进度条,我想保持隐藏,直到我实际执行某些操作。最右边是一个复选框,我只想在用户需要将更新下载到他们的数据库时显示。当我通过将可见性设置为Visibility.GONE来禁用复选框时,我可以单击列表项。当复选框可见时,除了复选框之外,我无法单击列表中的任何内容。我...

weixin_32659481的博客 159

别再死记硬背公式了!用ADS手把手教你仿真一个4GHz镜像抑制混频器(附完整工程文件)

本文详细介绍了使用Keysight ADS软件设计和仿真4GHz镜像抑制混频器的完整流程。从理论分析到实际工程实现,涵盖分支线耦合器设计、二极管建模、噪声系数仿真及性能优化等关键步骤,帮助工程师摆脱公式死记硬背,掌握实用的射频电路设计技能。附完整工程文件,可直接应用于实际项目开发。

weixin_28683391的博客 498

ListView中item点击事件无响应

ListView的Item点击事件突然无响应,问题一般是在listView中加入了button、checkbox等控件后出现的。这个问题是聚焦冲突造成的。在android里面,点击屏幕之后,点击事件会根据你的布局来进行分配的,当你的listView里面增加了button之后,点击事件第一优先分配给你listView里面的button。所以你的点击Item就失效了,这个时候你就要根据你的需求,是给你...

IT开发的博客 684

VS2019项目使用CGAL6.1配置教程详细步骤

在VS2019项目中使用CGAL详细步骤

插件开发 333

2025华为杯第二十二届中国研究生数学建模竞赛D题:低空湍流监测及最优航路规划 - 完整解题分析+完整MATLAB源码!(上篇)

🎓 本文收录于 《滚雪球学数学建模》专栏,本专栏专注于从零基础出发,带你循序渐进掌握数学建模的核心方法与思维路径。通过“滚雪球式”学习法,从最简单的生活化案例到经典建模工具,再到省赛、国赛真题实战演练,逐步积累知识与技能,帮助你搭建完整的建模体系。无论你是刚接触建模的新生,还是希望提升科研与竞赛能力的学者与工程师,本专栏都将为你提供一条清晰、高效、可实操的建模成长路线,助力你快速进阶,突破难点,迈向数学建模竞赛与实际应用的更高峰 🚀!

**My Coding Family** 2591

android listView 点击无响应的解决方法

android listView 点击无响应的解决办法 android listView 点击无响应的解决办法 ListView中item有button,checkbox等控件,默认情况下,这些子控件有现货的焦点focus,而ListView的Item能被选中的基础是它能获取Focus焦点,所以,我们可以通过将ListView中Item中包含的所有控件的focusable属性设置为

LVXIANGAN的专栏 1270

使用MATLAB进行灰色预测 GM(1,1)

使用MATLAB进行灰色预测 GM(1,1)

Hou_____的博客 1000

listview单选开关设置,listview单击事件无响应

/**  * 秒杀 收货地址,开关控制,单选选择地址  *   * @author zhuwg  *   */ public class ShiooingadressAdapter extends MBaseAdapter { private AdapterCallback callBack; private boolean flagAdapter = false; pr

u014074418的专栏 818

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

ListView中嵌入button,点击监听无响应的解决方案

在ListView的item的根节点中设置如下属性: android:descendantFocusability="blocksDescendants" 具体原因如下: android:descendantFocusability 属性简析     开发中很常见的一个问题,项目中的listview不仅仅是简单的文字,常常需要自己定义listview,自己的Adapter去

coder_e的博客 2331

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

带有checkbox的listview的item onItemClick事件无响应问题

带有checkbox的item,单击时无响应,原来是因为checkbox的事件响应优先于listview,所以checkbox优先获取了焦点。 导致listview获取不到焦点,单击事件就被屏蔽了。 解决办法:屏蔽掉checkbox的焦点即可 CheckBox android:layout_width="wrap_content" android:layout_height=

dandan的专栏 724

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

listview item加入CheckBox点击事件无效

ListView的item中加入checkbox后导致ListView对OnItemClick事件无法响应,原因是因为checkbox的事件响应优先级高于List Item,所以屏蔽了ListItem的单击事件。 解决方案:设置checkbox的android:focusable=”false”即可!...

CrackgmKey的博客 640

Android ListView的Item中有CheckBox,导致OnItemClick不响应的解决办法

listView的item加入checkbox后导致listView的OnItemClick事件无法响应,原因是因为checkbox的事件响应优先级高于list item,所以屏蔽了ListItem的单击事件 解决方案:设置checkbox的android:focusable="false"即可!

jxiang112的专栏 660

关于listview的item的点击事件的各个参数使用

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33755554的博客 498

ListView中点击事件无法响应

当ListView的Item中包含Button、ImageButto等控件时,会导致item无法获取焦点,从而无法响应点击事件。这时候需要设置所有子控件无法焦点:可以使用 android:focusable="false" 或在item layout文件中设置android:descendantFocusability="blocksDescendants" 这样item就可

Thinking in code 2339

android listview点击事件无效,Android Dialog 中使用 ListView item点击事件不响应

通过mListView.setOnItemClickListener设置item点击事件,正常情况下没有问题,但当item里面嵌套了抢焦点的控件(比如CheckBo Button 等),那么点击item的时候,Button等抢焦点的控件会抢先反应,就会导致点击item时没有反应。解决办法:想要item有自己的焦点,Button等控件有自己的焦点的话,需要在item的根控件里面设置android:d...

weixin_30686891的博客 609

android控件点击事件第一次无效,第二次才响应 / 设置EditText默认不弹出软键盘

一个以LinearLayout为Item的点击事件在第一次点击时无效,第二次点击之后才会响应。 以为是LinearLayout或是Adapter的问题,最后发现是因为焦点问题,第一次点击实际上是获取焦点,第二次点击才会响应点击事件。 问题所在: 在LinearLayout里面加了如下属性: android:focusable="true" android:focusableInTouch...

qugengting的博客 3243

ListView中的Item点击事件和子控件的冲突或者item点击没有反应的解决办法

fragment中添加了button和checkbox这些控件,此时这些子控件会将焦点获取到,所以常常当点击item时变化的是子控件,item本身的点击没有响应。 这时候就可以使用descendantFocusability来解决啦,API描述如下: android:descendantFocusability 该属性是当一个为view获取焦点时,定义viewGroup和其子控件两者之间的关

DylanAndroid 3883

Android ListView中Item点击事件失效解决方案

在平常的开发过程中,我们的ListView可能不只是简单的显示下文本或者按钮,更多的是显示复杂的布局,这样的话,我们就得自己写布局和自定义adapter了,一般是继承于BaseAdapter,写ListView的点击事件时OnItemClickListener,onItemClick方法没有执行,导致ListView中Item条目点击事件失效,而Item中的View点击事件可以在getView方法

gongwq的博客 1万+

ListView的item点击事件不响应

第一步:确保重写的Adapter里面getItem有正常的返回值: @Override public Object getItem(int position) { return list.get(position); } 第二步:设置ListView对象的监听: ListView lv; lv=(ListView)view.findViewById(R.id.ind

android程序猿HJ的博客 6753

关于Android中Listview的item点击不响应问题的解决

今天浪费了不少时间去解决listview中item点击不响应的问题,我在item的点击事件onitemclick()方法中想实现的是将点击的item的textview的内容传到edittext文本框中来显示。先在这里上一下代码吧: @Override public void onItemClick(AdapterView parent, View view, int position, lo

沐风的博客 2621
上一篇: 简单记录——android selector对应的java实现:StateListDrawable
下一篇: android网络开源框架volley(一)——从一个demo开始
ttdevs
博客等级 码龄15年 388粉丝 91原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值