ListView中各组件点击事件冲突,ListView不响应OnItemClickListener事件

参考博文:https://xjaphx.wordpress.com/2011/07/14/listview-doesnt-respond-to-onitemclicklistener/

#1,listview item中包含checkbox,需要改变checkbox的属性设置:

android:focusable="false"
android:focusableInTouchMode="false"

#2,包含ImageButton,在代码中设置:在布局文件中设置无效

ImageButton button = (ImageButton) convertView.findViewById(R.id.imageButton);
button.setFocusable(false);

#3,TextView超链接:我擦我受不了了,原博主太萌了,我要把ta的答案直接贴过来:

4. Scenario: list item contain TextView

ProblemOnItemClickListener just doesn’t repond.

Reason: I think you have set this attribute to TextView: android:inputType=”textMultiLine”

Solution: just remove that attribute, using android:minLines/android:maxLines instead.

5. Scenario: list item contain a TextView that is linked to website URL or whatever “mailto:” things

ProblemOnItemClickListener just doesn’t repond.

Reason: the TextView overrides focus of list item.

Solution: just remove attribute “android:autoLink” on TextView.

时间: 2024-10-05 05:07:15

ListView中各组件点击事件冲突,ListView不响应OnItemClickListener事件的相关文章

android 往dialog中加入listview,并实现listview中item的点击事件

LinearLayout linearLayoutMain = new LinearLayout(this);//自定义一个布局文件 linearLayoutMain.setLayoutParams(new LayoutParams( LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT)); ListView listView = new ListView(this);//this为获取当前的上下文 listView.setFadingEdg

listview中Item记录点击状态的方法--(点击显示、隐藏的状态保存)

listView中的Item有时候会添加其他的内容,例如有一块儿隐藏的区域,点击后展开,再次点击则隐藏.这时如果Item超过一屏,那么直接在Adapter中的getView方法加入判空操作,即 if(convertView == null){ convertView = new DownloadItem_CachedView(context); } 这时候,可能会出现混乱显示的情况. 解决办法,有三种. 1.  首先,各位想到的可能是直接把判空操作去掉,那么就不会复用,也就不会出现混乱了.这确实

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

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

element-ui 点击编辑弹出dialog组件中select组件绑定值改变,但是不触发change事件

代码结构如下: 现象视频如下: 现象原因:经过排查发现 此时点击操作不触发chang事件,后台响应数据中没有订单取消原因orderCanleRemark字段,此时导致不触发change事件, 解决方案:方案1,:让后台配合响应该字段,无论是否为空都响应该字段 方案2:在后台响应数据赋值给,this.form之前,手动添加该字段到后台响应数据中 代码如下: 原文地址:https://www.cnblogs.com/liujiazhu/p/8649810.html

android捕获ListView中每个item点击事件

package com.wps.android; import java.util.ArrayList; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListe

Android开发之ListView中的Button点击设置

在ListView的Item中,如果有Button控件,那么要实现Button和Item点击都有响应,可以将Item的Layout中Button的focusable属性设为false,然后设置layout的属性android:descendantFocusability="blocksDescendants". 代码如下: 1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLay

[转][Android] ListView中getView的原理+如何在ListView中放置多个item

ListView 和 Adapter 的基础 工作原理: ListView 针对List中每个item,要求 adapter “给我一个视图” (getView). 一个新的视图被返回并显示 如果我们有上亿个项目要显示怎么办?为每个项目创建一个新视图?NO!这不可能! 实际上Android为你缓存了视图. Android中有个叫做Recycler的构件,下图是他的工作原理: 如果你有10亿个项目(item),其中只有可见的项目存在内存中,其他的在Recycler中. ListView先请求一个t

在Activity中响应ListView内部按钮的点击事件

最近交流群里面有人问到一个问题:如何在Activity中响应ListView内部按钮的点击事件,不要在Adapter中响应? 对于这个问题,我最初给他的解答是,在Adapter中定义一个回调接口,在Activity中实现该接口,从而实现对点击事件的响应. 下班后思考了一下,觉得有两种方式都能比较好的实现:使用接口回调和使用抽象类回调. 正好可以复习一下接口和抽象类的区别,于是写了两个Demo: 1.使用接口回调: Adapter类 1 package com.ivan.adapter; 2 3

(转载)在Activity中响应ListView内部按钮的点击事件

使用接口回调和使用抽象类回调. 1.使用接口回调: Adapter类 1 package com.ivan.adapter; 2 3 import java.util.List; 4 5 import android.content.Context; 6 import android.util.Log; 7 import android.view.LayoutInflater; 8 import android.view.View; 9 import android.view.View.OnCl