文档章节

setOnItemClickListener(this)能否用Switch的问题

H
 HDJ999999
发布于 2016/11/15 10:55
字数 598
阅读 141
收藏 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
Android 让Gridview里的item显示或隐藏

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

刘征隆
2014/02/21
3.7K
0
listview setOnItemClickListener 事件失效的问题

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

天王盖地虎626
2015/02/10
732
0
【android基础学习之二】——基础控件ListView

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

晨曦之光
2012/03/08
543
0
android GridView 问题

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

weng4570
2013/11/25
183
3

没有更多内容

加载失败,请刷新页面

加载更多

下一页

angular 解决其他电脑不能访问的问题。

ng serve --host 0.0.0.0 --disable-host-check

miaojiangmin
今天
1
0
优酷视频文件怎么转换格式

  以前在优酷上下载视频都只是在手机上观看,但随着科技的发展,对于视频的要求也逐渐增多,不再只是观看视频那么简单,在精彩的部分还会将其单独分割出来,然后进行视频剪辑,可以做出我们...

萤火的萤火
今天
0
0
数据结构:散列

在一个数据结构中查找key元素,用顺序查找、二分查找都需要经过一系列关键之比较才能查找到结果,平均查找长度与数据量有关,元素越多比较次数就越多。 如果根据元素的关键字就能知道元素的存...

京一
今天
1
0
Apache RocketMQ 正式开源分布式事务消息

近日,Apache RocketMQ 社区正式发布4.3版本。此次发布不仅包括提升性能,减少内存使用等原有特性增强,还修复了部分社区提出的若干问题,更重要的是该版本开源了社区最为关心的分布式事务消...

阿里云云栖社区
今天
32
0
使用JavaScript和MQTT开发物联网应用

如果说Java和C#哪个是最好的开发语言,无疑会挑起程序员之间的相互怒怼,那如果说JavaScript是动态性最好的语言,相信大家都不会有太大的争议。随着越来越多的硬件平台和开发板开始支持JavaS...

少年不搬砖老大徒伤悲
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部