前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android listview中使用checkbox「建议收藏」

Android listview中使用checkbox「建议收藏」

作者头像
全栈程序员站长
发布2022-09-15 11:27:48
6000
发布2022-09-15 11:27:48
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。最近比较忙碌,我也不知道忙的什么东西,打算写的博客写了一半,还没写完,今天先扯一扯项目中遇到的一个问题,一方面防止以后遇到这个问题忘记如何解决,另一方面希望可以提供给遇到同样问题的朋友一个思路. 下面开始正题,在listview的item中使用checkbox,当你按照普通的listview的用法使用时,你会遇到下面这样的问题: 1.checkbox可以点击,但是listview的item无法点击 2.无法获得checkbox被点击的是哪一行 第一个问题涉及到事件分发,下一篇再扯(我会按照我的理解,通俗易懂的来描述),第二个问题我的理解就是getview无法重绘的原因,这里拿不到position的值,为了能解决我的问题,我需要换一种思路,也就是我今天介绍的方法:屏蔽checkbox的选择事件,也就是说checkbox不能响应选中事件,当用户点击listview的item时,制造假象,用代码控制选中checkbox

恩,差不多就这些了,由于代码直接写到项目中了,就不写demo了,直接贴一下主要代码,仅供参考,如果您有更好的方法可以相互交流

1,设置 checkbox无法响应点击事件

代码语言:javascript
复制
android:clickable="false"
        android:focusable="false"
        android:focusableInTouchMode="false" 

2.适配器中声明一个值用来控制checkbox的选中情况

代码语言:javascript
复制
private static HashMap<Integer,Boolean> isSelected;
代码语言:javascript
复制
public static HashMap<Integer,Boolean> getIsSelected() {  
        return isSelected;  
    }  
  
    public static void setIsSelected(HashMap<Integer,Boolean> isSelected) {  
    	MyDocShowAdapter.isSelected = isSelected;  
    }  
代码语言:javascript
复制
isSelected = new HashMap<Integer, Boolean>(); 
        for(int i=0; i<list.size();i++) {  
            getIsSelected().put(i,false);  
        } 

3.根据item的点击情况,给checkbox赋值

代码语言:javascript
复制
mListView.setOnItemClickListener(new OnItemClickListener() {

			@Override
			public void onItemClick(AdapterView<?> parent, View view,
					int position, long id) {
				ViewHolder holder = (ViewHolder) view.getTag(); 
				holder.mCheckBox.toggle();
				MyDocShowAdapter.getIsSelected().put(position, holder.mCheckBox.isChecked());
			}
		});

今天就到这,有问题请留言,多交流

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/163299.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档