文档章节

setOnItemClickListener(this)能否用Switch的问题

H
 HDJ999999
发布于 2016/11/15 10:55
字数 598
阅读 148
收藏 0

不能,因为方法内获取是Item的view.

ListView.setOnItemClickListener(new AdapterView.OnItemClickListener(){
public void onItemClick(AdapterView<?> arg0, View arg1, int position,long arg3)
各项的意义:arg1是当前item的view,通过它可以获得该项中的各个组件。
例如arg1.textview.settext("asd");
arg2是当前item的ID。这个id根据你在适配器中的写法可以自己定义。
arg3是当前的item在listView中的相对位置!

position是你点击的view在adapter的位置,id表示是你点击的第几行item
至于说值一样应该是他们的位置一样

知识链接相关:

ListView.setOnItemClickListener 点击无效

如果ListView中的单个Item的view中存在checkbox,button等view,会导致ListView.setOnItemClickListener无效,

事件会被子View捕获到,ListView无法捕获处理该事件.

解决方法:

在checkbox、button对应的view处加Android:focusable="false"
   android:clickable="false"android:focusableInTouchMode="false"

其中focusable是关键

从OnClickListener调用getSelectedItemPosition(),Click 和selection 是不相关的,Selection是通过D-pad or trackball 来操作的,Click通常是点击操作的。

arg2(view)参数才是点击事件位置的参数

listview setOnItemClickListener 失效问题

今天在做listview  setOnItemClickListener 事件,结果怎么都触发不了。整来大半天,没整好,网上的资料一般都是说button啊,checkbox啊,不要设置可点击。

因为这些控件的获取焦点的权值会比listview的item的权值高,所以先被这些控件给捕获了,所以使得setOnItemClickListener的Item失效。

关键是我的布局里面没有这个控件啊,结果发现在布局里最上面的linearlayout中发现一个android:clickable=“true”属性,

问题就在这里,点击的焦点先被linearlayout获取了,所以触发不了itemclick了。

ListView setOnItemSelectedListener setOnItemClickListener 区别

OnItemSelectedListener.setOnItemSelectedListener()

指的是鼠标获得一个条目的焦点,字面上理解是选择一个条目

OnItemClickListener.setOnItemClickListener()

指的是你单击一个条目。

如果你从鼠标滚动(或者说选择一个条目)过渡到单击一个条目,都会在调用OnItemClickListener.setOnItemClickListener()之前调用一次OnItemSelectedListener.onNothingSelected()。貌似是因为你单击了一个条目之前就默认你没有选择任何条目,所以会触发一个OnItemSelectedListener.onNothingSelected()

 

设置监听器gridView.setOnItemClickListener(this);会报错,还望解答,ListView的也有这个错误

原因:我应该引用的是android.widget.AdapterView.OnItemClickListener这个,但是引用的是android.support.v7.internal.widget.AdapterViewCompat.OnItemClickListener;谢谢

 

 

© 著作权归作者所有

共有 人打赏支持
H
粉丝 0
博文 1
码字总数 598
作品 0
北京
点击 menu菜单 如果更新菜单的icon图标

menuGrid = (GridView) menuView.findViewById(R.id.gridview); menuGrid.setAdapter(getMenuAdapter(menunamearray, menuimagearray)); / 监听menu选项 / menuGrid.setOnItemClickListener(......

zjq
2012/07/05
173
1
listview setOnItemClickListener 事件失效的问题

不知道大家有没有遇到这样的场景: 比如说用户a,在一个评论页面进行评论,然后在listview展现评论内容,然后再点击自己评论的内容回复,发现setOnItemClickListener事件失效了,必须等退出评...

天王盖地虎626
2015/02/10
732
0
Android 让Gridview里的item显示或隐藏

当我点击第一的时候,假设第一的position为0,当代码运行完毕后,该汉字会在第二中显示,然后第一的图画和汉字都会隐藏,当我点击第二的position2时候,第一被隐藏的东西要出现。 private Gr...

刘征隆
2014/02/21
3.7K
0
android GridView 问题

红色部分每个字符分别表示的是什么呀;谢谢 bottomMenu.setOnItemClickListener(new OnItemClickListener() { //private GridView bottomMenu; @Override public void onItemClick(AdapterVi......

weng4570
2013/11/25
183
3
【android基础学习之二】——基础控件ListView

声明:学习的书籍《Android应用开发揭秘》,这里记录学习该书籍的日志,引用的相关代码与总结描述,没有商业的用途,完全是自我学习的一个记录,刚刚学习不可避免会出现很多问题,若是有错误...

晨曦之光
2012/03/08
543
0

没有更多内容

加载失败,请刷新页面

加载更多

Linux安装MySQL的两种方法

1. 运行平台:CentOS 6.3 x86_64,基本等同于RHEL 6.3 2. 安装方法: 安装MySQL主要有两种方法:一种是通过源码自行编译安装,这种适合高级用户定制MySQL的特性,这里不做说明;另一种是通过...

onedotdot
24分钟前
4
0
phpize源码安装php扩展

4、进入源码中的ext/pcntl目录 ~# cd php-5.3.29/ext/pcntl/ 5、运行 phpize 命令 ~# phpizeConfiguring for:PHP Api Version: 20090626Zend Module Api No: 20090626......

bengozhong
33分钟前
2
0
Git 常用技巧

# Git 常用技巧 ## 暖场 - Git 怎么读 ? - Git 的作者是谁 ? - 谁没有 Github 账号 ? - 谁没有在 Github 提交过 issues,PR ? - 谁没有不会用命令操作 Git ? ## Git 简介 Git 是一种代码...

帝子兮
45分钟前
2
0
MySQL学习笔记

踩坑建议 对于时间相关字段,为插入及显示毫秒数据,建议使用datetime(6)类型,并设置数据库客户端显示毫秒相关数据

OSC_fly
45分钟前
0
0
spring配置文件中xsd引用异常

异常: org.xml.sax.SAXParseException; lineNumber: 78; columnNumber: 69; schema_reference.4: 无法读取方案文档 'http://www.springframework.org/schema/tx/spring-tx-3.2.xsd', 原因为......

zaolonglei
48分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部