android-Android listview重复的问题

问题描述

Android listview重复的问题
有谁遇到过这样类似的问题,说说方法呗
简单描述下:
比如我在每个item 里面加一个CheckBox,我随变选一俩个,但是我向下滑动的时候 发现下面重复出现了

解决方案

private static HashMap isSelected = new HashMap();
// 记录状态
HashMap state = new HashMap();

private void initDate() {    for (int i = 0; i < approveList.size(); i++) {        getIsSelected().put(i false);    }}这是关键部分,在点击事件中h.itemBox.setOnCheckedChangeListener(new OnCheckedChangeListener() {        @Override        public void onCheckedChanged(CompoundButton buttonView                boolean isChecked) {            if (isChecked) {                state.put(position isChecked);                getIsSelected().put(position true);            } else {                getIsSelected().put(position false);                state.remove(position);            }        }    });    h.itemBox.setChecked(state.get(position) == null ? false : true);

解决方案二:
这个是因为getView方法的View重用导致的,你可以在数据中添加一个字段记录开关状态,然后在getView方法中每次去判断设置一下开关。

解决方案三:
自己写一个adapter继承自ArrayAdapter或者BaseAdapter来分别处理checkbox吧。

解决方案四:
肯定是你处理getview时有问题,记得在getview中重新填充你的view

解决方案五:
View被重新生成了,用final保证固定~~

解决方案六:
如果你用了 ViewHolder 要注意if else 的完整性

时间: 2024-10-25 20:07:05

android-Android listview重复的问题的相关文章

Android中ListView异步加载图片错位、重复、闪烁问题分析及解决方案

Android ListView异步加载图片错位.重复.闪烁分析以及解决方案,具体问题分析以及解决方案请看下文. 我们在使用ListView异步加载图片的时候,在快速滑动或者网络不好的情况下,会出现图片错位.重复.闪烁等问题,其实这些问题总结起来就是一个问题,我们需要对这些问题进行ListView的优化. 比如ListView上有100个Item,一屏只显示10个Item,我们知道getView()中convertView是用来复用View对象的,因为一个Item的对应一个View对象,而Ima

android 圆形ListView实现,并附带圆角ImageView

转载请注明出处:王亟亟的大牛之路 平时 垂直向下的ListView已经司空见惯,换一种带一定角度的圆角ListView应该会给用户不同的体验 项目目录: 2个自定义View一个主Activity MainActivity public class MainActivity extends Activity { private ListView lv; //本地图片模拟数据源 private int[] images = new int[] { R.drawable.p1, R.drawable.

Android实现ListView异步加载图片的方法_Android

本文实例讲述了Android实现ListView异步加载图片的方法.分享给大家供大家参考.具体如下: ListView异步加载图片是非常实用的方法,凡是是要通过网络获取图片资源一般使用这种方法比较好,用户体验好,不用让用户等待下去,下面就说实现方法,先贴上主方法的代码: package cn.wangmeng.test; import java.io.IOException; import java.io.InputStream; import java.lang.ref.SoftReferen

Android开发ListView中下拉刷新上拉加载及带列的横向滚动实现方法_Android

ListView 控件可使用四种不同视图显示项目.通过此控件,可将项目组成带有或不带有列标头的列,并显示伴随的图标和文本. 可使用 ListView 控件将称作 ListItem 对象的列表条目组织成下列四种不同的视图之一:1.大(标准)图标2.小图标3.列表4.报表 View 属性决定在列表中控件使用何种视图显示项目. 还可用 LabelWrap 属性控制列表中与项目关联的标签是否可换行显示.另外,还可管理列表中项目的排序方法和选定项目的外观. 相信有很人做的项目估计都用的到这个.就是List

[Android问答] ListView如何加载远程图片?(附代码)

[Android问答] ListView如何加载远程图片?(附代码)  ListView在Android应用里扮演非常重要的角色,但很多开发者在使用ListView时都遇到过不少麻烦.一个常见的问题是:列表中要显示一系列记录,每条记录带有一张缩略图(产品照片.用户头像等等),而这个缩略图是通过一个远程URL地址来标识的.这样的应用场景该如何实现呢? 为了避免下载图片带来的延迟,所有远程图片都应该使用异步方式加载,即使用单独的线程下载图片,待图片下载完毕后显示在ImageView里.Android

Android的ListView

项目源码下载 https://github.com/Wang-Jun-Chao/AndroidProjects ListView 就是用来显示一行一行的条目的 MVC结构 M:model模型层,要显示的数据 ----people集合 V:view视图层,用户看到的界面 ----ListView c:control控制层,操作数据如何显示 ----adapter对象 每一个条目都是一个View对象 BaseAdapter 必须实现的两个方法 第一个 () { people.size(); } 第二

Android实现ListView过滤功能,继承于BaseAdapter,非ArrayAdapter

其实实现ListView过滤功能最方便的便是使用ArrayAdapter,里面自带的 getFilter()方法能很方便的实现此功能,但是在实际的开发中,一般都是继承于 BaseAdapter.还有一种是利用控件AutoComplete,这种方式只是在输入框的下方 重新显示一个列表,显然,很多时候这两种方式也满足不了我们的要求. 在Activity中定义一个类,让它实现TextWatcher接口,然后再onTextChanged 方法中去过滤.然后常见相应的Pattern和match,来判断传入

android中ListView数据刷新时的同步方法

  本文实例讲述了android中ListView数据刷新时的同步方法.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

android实现listview分页的方法

  本文实例讲述了android实现listview分页的方法.分享给大家供大家参考.具体分析如下: 最近做了下listview的分页,跟WEB上的分页是一个意思,需要那几个分页参数,不同的是sqlite中分页的查询语句,简便的方法需要用Limit,Offset关键字,前者是查询每页展示的记录数,后者是越过多少记录数,说得明白点就是忽略前面多少行记录之后,取多少行记录 我分页采用了一个重要的类Page,通过封装Page类,做为参数传递进来,返回出去也是个Page对象 ? 1 2 3 4 5 6

Android为ListView的Item设置不同的布局

  MainActivity如下: package cc.testlistview; import java.util.ArrayList; import java.util.HashMap; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import andr