Android ListView 中的onItemClick方法中Intent 无法跳转的解决方案

I found this somewhere after googling

There will be case that your custom list item doesn’t respond when you click…so what’s the reason and what’s the solution?

Here several problems and solutions:

1. Scenario: list item layout contains CheckBox

Problem: OnItemClickListener doesn’t respond.

Reason: CheckBox is also having its own click listener by default to change its state, and it overrides the container ListView.

Solution: remove focus on CheckBox by setting these attributes to “false”

1 2 android:focusable="false" android:focusableInTouchMode="false"

2. Scenario: random

Problem: OnItemClickListener just doesn’t repond any at all!!!!

Reason: No idea..

Solution: in code, just set OnItemClickListener before setting Adapter. It works randomly @@!

3. Scenario: list item contains ImageButton

Problem: OnItemClickListener just doesn’t repond any at all!!!!

Reason: No idea!!!

Solution: in code, set ImageButton focus to “false”

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

4. Scenario: list item contain TextView

Problem: OnItemClickListener 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

Problem: OnItemClickListener just doesn’t repond.

Reason: the TextView overrides focus of list item.

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

position不是一定从0开始的

若使用ArrayAdapter绑定ListView。 在onItemClickListener中 使用 if (postion == 1(数组坐标))检测而不是 if (array[position] == array数组position坐标位置)

参考:

http://www.dewen.io/q/6038/Android+ListView%E4%B8%ADonItemClick%E6%97%A0%E6%B3%95%E5%BE%97%E5%88%B0%E5%93%8D%E5%BA%94%EF%BC%9Fselector%E4%B8%AD%E7%9A%84pressed%E7%8A%B6%E6%80%81%E5%A6%82%E4%BD%95%E8%BF%9B%E8%A1%8C%E5%B1%8F%E8%94%BD%EF%BC%9F

http://www.cnblogs.com/livesoft/archive/2011/02/12/1951762.html

时间: 2024-10-21 07:13:17

Android ListView 中的onItemClick方法中Intent 无法跳转的解决方案的相关文章

Android中自定义ListView无法响应OnItemClickListener中的onItemClick方法问题解决方案

如果你的自定义ListViewItem中有Button或者Checkable的子类控件的话,那么默认focus是交给了子控件,而ListView 的Item能被选中的基础是它能获取Focus,也就是说我们可以通过将ListView中Item中包含的所有控件的focusable属性设置为 false,这样的话ListView的Item自动获得了Focus的权限,也就可以被选中了 我们可以通过对Item Layout的根控件设置其android:descendantFocusability="blo

Android ListView OnItemLongClick和OnItemClick事件内部细节分享以及几个比较特别的属性

本文转自 http://blog.sina.com.cn/s/blog_783ede030101bnm4.html 作者kiven 辞职3,4个月在家休息,本以为楼主要程序员逆袭,结果失败告终继续码农生涯今天开始更新博客. 正文. 项目中有个ListView内容比较复杂现在要添加长按删除功能.楼主自然想到利用ListView的onItemLongClick事件来处理.结果可想而知在实际体验中很不好,会出现失灵有些选项能触发onItemLongClick事件有些却没反应.楼主去网上看了都是focu

Android ListView OnItemLongClick和OnItemClick事件内部细节分享

辞职3,4个月在家休息,本以为楼主要程序员逆袭,结果失败告终继续码农生涯今天开始更新博客. 正文. 项目中有个ListView内容比较复杂现在要添加长按删除功能.楼主自然想到利用ListView的onItemLongClick事件来处理.结果可想而知在实际体验中很不好,会出现失灵有些选项能触发onItemLongClick事件有些却没反应.楼主去网上看了都是focusable要设置成false.但依照楼主的经验这只能解决都不能触发onItemLongClick事件问题,像楼主遇到的有些可以有些失

详解SpringMVC中Controller的方法中参数的工作原理

前言 SpringMVC是目前主流的Web MVC框架之一. 如果有同学对它不熟悉,那么请参考它的入门blog:http://www.cnblogs.com/fangjian0423/p/springMVC-introduction.html SpringMVC中Controller的方法参数可以是Integer,Double,自定义对象,ServletRequest,ServletResponse,ModelAndView等等,非常灵活.本文将分析SpringMVC是如何对这些参数进行处理的,

详解SpringMVC中Controller的方法中参数的工作原理[附带源码分析] good

目录 前言 现象 源码分析 HandlerMethodArgumentResolver与HandlerMethodReturnValueHandler接口介绍 HandlerMethodArgumentResolver与HandlerMethodReturnValueHandler接口的具体应用 常用HandlerMethodArgumentResolver介绍 常用HandlerMethodReturnValueHandler介绍 本文开头现象解释以及解决方案 编写自定义的HandlerMet

【MVC - 参数原理】详解SpringMVC中Controller的方法中参数的工作原理[附带源码分析]

前言 SpringMVC是目前主流的Web MVC框架之一. 如果有同学对它不熟悉,那么请参考它的入门blog:http://www.cnblogs.com/fangjian0423/p/springMVC-introduction.html SpringMVC中Controller的方法参数可以是Integer,Double,自定义对象,ServletRequest,ServletResponse,ModelAndView等等,非常灵活.本文将分析SpringMVC是如何对这些参数进行处理的,

详解SpringMVC中Controller的方法中参数的工作原理——基于maven

转自:http://www.tuicool.com/articles/F7byQn 前言 SpringMVC是目前主流的Web MVC框架之一. 如果有同学对它不熟悉,那么请参考它的入门blog:http://www.cnblogs.com/fangjian0423/p/springMVC-introduction.html SpringMVC中Controller的方法参数可以是Integer,Double,自定义对象,ServletRequest,ServletResponse,ModelA

global文件中的application_start方法中做: 定时器

<%@ Application Language="C#" %> <%@ import Namespace="System.Data" %> <%@ import Namespace="System.Data.SqlClient" %> <%@ import Namespace="System.Collections" %> <%@ Import Namespace=&qu

spring mvc中的控制器方法中的参数从哪里传进来?

编写控制器方法的时候很奇怪,spring是怎么知道你控制器方法的参数类型,并且注入正确的对象呢? 比如下面这样 @RequestMapping(value="/register", method=GET) public String showRegistrationForm(Model model) { model.addAttribute(new Spitter()); return "registerForm"; } 他怎么知道Model对应啥呢? 其实,spr