Listview点击选中,双击取消选中

在Android中,通过设置ListView的choicemode为'singleChoice'可实现单击选择项的效果,但默认情况下,再次点击同一项不会取消选中。本文介绍一种通过比较点击位置和状态来实现双击取消选中的方法,同时也表达了对更高效解决方案的期待。
摘要由CSDN通过智能技术生成

在Listview布局文件中加入choicemode = “singleChoice”即可实现点击item的选中效果。
如果不想要选中效果只需要myList.setSelector(new ColorDrawable(Color.TRANSPARENT));

但是默认效果的问题是单击某个item选中之后,再点击一次,并没有去掉选中的效果。

我目前的解决方法是通过position判断是否选中相当位置,再通过isSelected判断当前状态
如果position与上次点击的position相当,且上一次的状态是选中,则通过myList.setSelector(new ColorDrawable(Color.TRANSPARENT));将背景设成原来的样子,并将isSelected状态改为Unselected

具体代码如下:

 public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                myList.setSelector(new ColorDrawable(getResources().getColor(R.color.gray_white)));
                if (position==prePosition){
                    if(isS
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值