文档章节

setOnItemClickListener(this)能否用Switch的问题

H
 HDJ999999
发布于 2016/11/15 10:55
字数 598
阅读 153
收藏 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
北京
私信 提问
listview setOnItemClickListener 事件失效的问题

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

天王盖地虎626
2015/02/10
740
0
android常用组件之Spinner

Spinner是下拉列表框,用户可以通过该控件从所列item中进行选择,还可以触发item的监听事件。 该实例通过ArrayAdapter类创建了含有30个item的下拉列表,当用户从所列的item中进行选择后,会弹...

sometimesno1
2014/12/27
0
0
【android基础学习之二】——基础控件ListView

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

晨曦之光
2012/03/08
656
0
系统崩溃问题,点击添加的事件时直接崩溃

第一次进入页面的时候加载了11张图片和一些数据,放在一个ListView里面,然后给这个listview增加一个setOnItemClickListener事件。我点击其中的Item,系统就会崩溃。各位大手求解答。...

风骚丶剑飘血
2012/07/18
169
5
ListView 中使用setvisibility方法不起作用

如题为一个ListView绑定了setOnItemClickListener监听事件,在该监听事件中对一个图片进行显示或者隐藏的处理。 代码片段如下: xml文件如下: 其中的setVisbility()方法不起作用,请问这是为...

RogerHan
2013/08/21
3.8K
1

没有更多内容

加载失败,请刷新页面

加载更多

二十分钟教你如何将区块链应用与函数计算相结合

前言 本篇文章适合对区块链应用感兴趣或是想要通过函数计算服务进一步开发区块链应用的新人。本文将结合阿里云区块链服务、阿里云函数计算服务、阿里云日志服务 以及社区应用 Marbles,手把手...

阿里云官方博客
13分钟前
1
0
Double数相加后结果不准确

在我们进行两个double运算时,例如:2..0-1.1 不是想象的输出0.9,而是0.89999999999999999。其主要原因是浮点数值采用二进制系统表示,而在二进制系统中无法精确的表示分数1/10。这就好像十...

嘴角轻扬30
21分钟前
1
0
去除移动端点击效果

移动端点击时,会有一个类似active的短暂背景淡出效果,去除该效果可使用 -webkit-tap-highlight-color: rgba(255, 0, 0, 0);

originDu
23分钟前
1
0
腾讯云与MariaDB 基金会签署战略合作,共建全球开源生态圈

本文由云+社区发表 腾讯云日前与MariaDB基金会正式签署战略合作协议,2019年,腾讯云将继续以白金会员身份为基金会的发展提供强有力的资源支持,与MariaDB全球用户和开发者一道,共建开放共赢...

腾讯云加社区
27分钟前
2
0
Kotlin的SAM(Single Abstract Method)

今天有人在群里问kotlin支持SAM的问题,其实kotlin不支持SAM,因为人家支持FP(function programing) package reactinterface Test { fun print()}class TestInterface(var...

SuShine
29分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部