setOnItemClickListener(this)能否用Switch的问题
setOnItemClickListener(this)能否用Switch的问题
HDJ999999 发表于11个月前
setOnItemClickListener(this)能否用Switch的问题
  • 发表于 11个月前
  • 阅读 72
  • 收藏 0
  • 点赞 0
  • 评论 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;谢谢

 

 

共有 人打赏支持
粉丝 0
博文 1
码字总数 598
×
HDJ999999
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: