`
Spiritualize_彭韬
  • 浏览: 25741 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

网络网盘之ListView 的(CheckBox )滑动问题

 
阅读更多

      Android网盘开发最不可避免的就是在ListView 中关于CheckBox 滑动问题

     这与ListView 的缓存机制有关。。

      问题:   你不断的上下滑动,CheckBox勾中项就会混乱,即跑到别的item中

      上网搜了很多资料,(大同小异)解决这一问题。

      而我做这个网络网盘就用了给传入进来的List<Map<String,Object>> mData 设置标志

      也就是在item被点击是记录被点击的position

       // 如果是文件夹则打开

 

if ((Integer) (mData.get(position).get("icon")) == R.drawable.icon_folder) {mDir = (String) mData.get(position).get("info");
 mData = getData(); // 点击目录时进入子目录
 MyAdapter adapter = new MyAdapter(getApplicationContext(),mData);
  list.setAdapter(adapter);
  tv_path.setText("目前路径:" + mDir);
} else {
CheckBox check = ((MyAdapter.ViewHolder) view.getTag()).checkbox;
 
if (check.isChecked()) { // 判断CheckBox是否选择
// ,如果是则取消并修改mData中上传为false
   check.setChecked(false);
   mData.get(position).remove("isUpload");
   mData.get(position).put("checkTag", false);
// 记录文件是否被点击 标记为上传
mData.get(position).put("isUpload", "NO");
} else {
  check.setChecked(true);
   mData.get(position).remove("isUpload");
   mData.get(position).put("checkTag", true);
  mData.get(position).put("isUpload", "YES");
 }
}
 

 

               上面的checkTag是关键,设置点击的表示,在初始化时,给每个item,设置checkTag,false , 也就是Map<String, Object>对象。

           而在Adapter(extends BaseAdapter) 就很简单了,设置标记值,这样每一个mData在position上都有明确的checkTag值,记录你是否点击过

             

 if (String.valueOf(mData.get(position).get("isUpload")).equals("YES")) {
    // 如果是 则checkbox显示为Checked
   // 防止listview缓存机制导致CheckBox是否选中错乱
   holder.checkbox.setChecked((Boolean)                        
    mData.get(position).get("checkTag"));    
} else {
    holder.checkbox.setChecked( (Boolean)          
     mData.get(position).get("checkTag"));
}
 
 

 

分享到:
评论

相关推荐

    解决ListView嵌套CheckBox滑动时选中状态错乱

    然而,当ListView内部嵌套CheckBox等可交互组件时,常常会遇到一些问题,特别是滑动过程中选中状态错乱的现象。这个问题主要是由于ListView的复用机制导致的,即ListView在滚动时会复用已滑出屏幕的列表项,如果不...

    c# ListView CheckBox 索引值

    当我们在ListView中添加了CheckBox复选框功能时,可能需要获取被选中的项的索引值,以便进行进一步的操作,比如处理用户的选择或者更新数据库。本文将详细介绍如何在C#中获取ListView中CheckBox的索引值。 首先,...

    ListView CheckBox

    - 由于ListView的复用机制,当滑动时,已不可见的View会被重用。因此,务必在`getView()`中正确设置CheckBox的状态,防止状态错乱。 - 使用`ViewHolder`模式可以提高ListView的滚动性能。 9. **点击事件处理**: ...

    完美解决Listview嵌套Checkbox滑动后位置错乱问题,和checkbox的全选或全不选。

    本文将深入探讨如何完美解决ListView中Checkbox滑动后位置错乱的问题,以及实现Checkbox的全选和全不选功能。 首先,我们遇到的主要问题是ListView的视图复用机制。为了提高性能,ListView在滑动时会复用已滚动出...

    ListView中添加CheckBox

    遇到以下问题的都可以看看: 1、ListView item中加入checkbox后onListItemClick 事件无法触发。 原因:checkbox的优先级高于ListItem于是屏蔽了ListItem的单击事件。 解决方案:设置checkbox的android:focusable=...

    两个ListView同步滑动

    当需要在一个屏幕上展示两个相关的ListView时,有时我们希望它们可以同步滑动,即一个ListView滑动时,另一个ListView也随之滑动。这种效果可以增强用户界面的一致性和用户体验。以下就是关于"两个ListView同步滑动...

    ListView添加CheckBox复选框

    为了增加用户交互性,我们经常会在ListView的每一项中添加CheckBox,这样用户就可以进行多选操作。本篇文章将详细讲解如何在ListView中实现CheckBox复选框的功能。 首先,我们需要创建一个自定义的ListView适配器。...

    Listview checkbox 单选,多选,删除,单击选择,显示选择结果

    在这个特定的场景中,我们关注的是如何将CheckBox集成到ListView中,实现多种交互模式,如单选、多选、全选、取消全选以及删除功能,并能实时显示选择结果。 1. **ListView与CheckBox的结合**: 在自定义ListView...

    ListView有CheckBox,滑动混乱问题解决

    针对"ListView有CheckBox,滑动混乱问题",我们需要采取以下策略来解决: 1. **重写getView()方法**:在自定义的Adapter中,你需要覆盖`getView()`方法,确保每次返回的View都是根据当前的数据项状态初始化的。对于...

    WPF中ListView添加CheckBox列

    在实际的应用场景中,我们经常需要在ListView中添加可选的复选框(CheckBox)列,以便用户能够选择一个或多个项目。本文将详细探讨如何在WPF的ListView中实现这一功能。 首先,我们需要理解WPF中的数据绑定机制。在...

    完美解决ListView和CheckBox的焦点冲突及CheckBox的复用问题

    本文将详细探讨这些问题以及如何通过优化来实现“完美解决ListView和CheckBox的焦点冲突及CheckBox的复用问题”。 一、焦点冲突问题 在ListView中,通常一个列表项被点击时,焦点会自动转移到该列表项,但如果列表...

    WPF ListView控件中CheckBox全选联动

    在实际项目中,我们经常需要实现一个功能,即在ListView中加入CheckBox,让用户能够通过一个主CheckBox来控制所有子项CheckBox的选择状态,这就是所谓的全选/反选联动。在本文中,我们将深入探讨如何在WPF的MVVM...

    delphi中listview启用checkbox实现单选

    在Delphi编程环境中,ListView控件是一个非常常用的组件,它允许开发者展示列表数据,并提供了多种交互方式,如单击、双击以及复选框选择。本文将深入探讨如何在Delphi中启用ListView的复选框并实现单选功能,特别...

    Android防京东筛选,ListView+CheckBox滑动冲突

    首先,我们要解决的是"ListView+CheckBox滑动冲突"的问题。在ListView中,每个Item可能包含一个或多个可交互元素,如CheckBox。当用户尝试滑动ListView时,如果手指不小心触碰到了CheckBox,可能会导致CheckBox的...

    ListView和CheckBox的混乱问题

    主要是解决主要是解决我以前的一篇博客仿微信添加群聊界面——addView里listview和checkbox混乱的问题,详细请看我的博客http://blog.csdn.net/jiang89125/article/details/50379364

    ListVIew 实现Checkbox多选

    本文将深入探讨如何在ListView中实现Checkbox多选功能,以及相关的Android编程技巧。 首先,我们需要创建一个自定义的ListView adapter。这个adapter将负责渲染每一项数据,并在每一项中包含一个Checkbox。在Java...

    ListView复用checkBox的解决方法

    然而,在ListView中使用checkBox时,由于ListView的视图复用机制,会遇到一些问题。本教程将详细讲解如何解决ListView复用checkBox的问题,以及如何实时获取选中的checkBox数量。 首先,理解ListView的工作原理至关...

    android 解决ScrollView和listView嵌套冲突问题(保证在ScrollView中滑动listView只响应listView的滑动)

    在Android开发中,ScrollView和ListView的嵌套是一个常见的需求,但同时也伴随着许多技术挑战,主要问题在于两者都具有滚动功能,导致冲突,使得用户在滚动时可能会遇到不确定的行为。本篇将详细介绍如何解决这种...

    listview的滑动特效

    在描述中提到的"listview的滑动特效"是指为ListView添加的动态视觉效果,当用户在ListView上滑动时,这些特效能提升用户体验,使应用看起来更加酷炫。下面将详细介绍如何实现ListView的滑动特效及其相关知识点。 1....

    listview快速滑动,修改默认的滑动条

    本话题将重点讨论如何在ListView快速滑动时修改默认的滑动条,以提供更好的用户体验。 首先,我们来看`ListView`的基本用法。在XML布局文件中,我们可以直接添加`ListView`并为其设置ID: ```xml &lt;ListView ...

Global site tag (gtag.js) - Google Analytics