- 浏览: 5776730 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (890)
- WindowsPhone (0)
- android (88)
- android快速迭代 (17)
- android基础 (34)
- android进阶 (172)
- android高级 (0)
- android拾遗 (85)
- android动画&效果 (68)
- Material Design (13)
- LUA (5)
- j2me (32)
- jQuery (39)
- spring (26)
- hibernate (20)
- struts (26)
- tomcat (9)
- javascript+css+html (62)
- jsp+servlet+javabean (14)
- java (37)
- velocity+FCKeditor (13)
- linux+批处理 (9)
- mysql (19)
- MyEclipse (9)
- ajax (7)
- wap (8)
- j2ee+apache (24)
- 其他 (13)
- phonegap (35)
最新评论
-
Memories_NC:
本地lua脚本终于执行成功了,虽然不是通过redis
java中调用lua脚本语言1 -
ZHOU452840622:
大神://处理返回的接收状态 这个好像没有监听到 遇 ...
android 发送短信的两种方式 -
PXY:
拦截部分地址,怎么写的for(int i=0;i<lis ...
判断是否登录的拦截器SessionFilter -
maotou1988:
Android控件之带清空按钮(功能)的AutoComplet ...
自定义AutoCompleteTextView -
yangmaolinpl:
希望有表例子更好。。。,不过也看明白了。
浅谈onInterceptTouchEvent、onTouchEvent与onTouch
Android ListView CheckBox状态错乱
http://www.cnblogs.com/wujd/archive/2012/08/17/2635309.html
在ListView中的列表项中定义checkbox是一个常见手法,不过如果在listview使用了ViewHolder缓存的话就会遇到一个很恶心的问题,就是列表项错位的问题,为此我想到了一个自认为还算简单的解决方法,就是在自定义Adapter时加入checkbox.setTag(position)这样一句代码。这里checkbox为当前列表项的复选框,position为当前列表项位置。然后为checkbox设置点击事件,checkbox.setOnClickLinster(this)。最后在onClick(View v)方法中通过switch(v.getTag()){case 1: .......}方式设置点击事件
我的解决方法:
引入一个ArrayList<Boolean>列表,记录每一项当前的状态,然后在getView()中这样使用:holder.checkBox_3.setChecked(checkPosition_3.get(position));
具体看下面:
我这里一个Item里面有3个CheckBox,所以有三个ArrayList<Boolean>列表。
如果在ListView中存在EditText的话,也会存在错乱问题。
解决方法http://blog.sina.com.cn/s/blog_80f8936801012cp7.html
虽然也不那么优美!
ListView用CHOICE_MODE_MULTIPLE属性实现多选
http://blog.csdn.net/pengkv/article/details/47151023
http://www.cnblogs.com/wujd/archive/2012/08/17/2635309.html
在ListView中的列表项中定义checkbox是一个常见手法,不过如果在listview使用了ViewHolder缓存的话就会遇到一个很恶心的问题,就是列表项错位的问题,为此我想到了一个自认为还算简单的解决方法,就是在自定义Adapter时加入checkbox.setTag(position)这样一句代码。这里checkbox为当前列表项的复选框,position为当前列表项位置。然后为checkbox设置点击事件,checkbox.setOnClickLinster(this)。最后在onClick(View v)方法中通过switch(v.getTag()){case 1: .......}方式设置点击事件
我的解决方法:
引入一个ArrayList<Boolean>列表,记录每一项当前的状态,然后在getView()中这样使用:holder.checkBox_3.setChecked(checkPosition_3.get(position));
具体看下面:
private List<Boolean> checkPosition_3,checkPosition_1,checkPosition_0; class ListViewAdapter extends BaseAdapter{ private Context context; public ListViewAdapter(Context context){ this.context=context; checkPosition_3 = new ArrayList<Boolean>(ITEMS); checkPosition_1 = new ArrayList<Boolean>(ITEMS); checkPosition_0 = new ArrayList<Boolean>(ITEMS); for(int i=0;i<ITEMS;i++){ checkPosition_3.add(false); checkPosition_1.add(false); checkPosition_0.add(false); } } public int getCount() { // TODO Auto-generated method stub return model.getItems().size(); } public Object getItem(int position) { // TODO Auto-generated method stub return model.getItems().get(position); } public long getItemId(int position) { // TODO Auto-generated method stub return position; } @Override public boolean isEnabled(int position) { // TODO Auto-generated method stub return false; } public View getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub final ViewHolder holder; if(convertView==null){ holder=new ViewHolder(); convertView=LayoutInflater.from(context).inflate(R.layout.simple_list_item_zc14or9, null); holder.serial = (TextView)convertView.findViewById(R.id.serial);//序号 holder.SS = (TextView)convertView.findViewById(R.id.SS);//赛事 holder.ZDandKD = (TextView)convertView.findViewById(R.id.ZDandKD);//主队 VS 客队 holder.BSSJ = (TextView)convertView.findViewById(R.id.BSSJ);//比赛时间 holder.checkBox_3 = (CheckBox)convertView.findViewById(R.id.checkBox_3);// holder.checkBox_1 = (CheckBox)convertView.findViewById(R.id.checkBox_1);// holder.checkBox_0 = (CheckBox)convertView.findViewById(R.id.checkBox_0);// convertView.setTag(holder); }else{ holder = (ViewHolder) convertView.getTag(); } ZC instance=model.getItems().get(position); holder.serial.setText(instance.serial); holder.SS.setText(instance.SS); holder.ZDandKD.setText(instance.ZD+" VS "+instance.KD); holder.BSSJ.setText(instance.BSSJ); //为了解决关于ListView+CheckBox,Item超过一屏时数据错乱 holder.checkBox_3.setId(position); holder.checkBox_3.setChecked(checkPosition_3.get(position)); holder.checkBox_3.setOnCheckedChangeListener(new OnCheckedChangeListener(){ public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { // TODO Auto-generated method stub int id = buttonView.getId(); checkPosition_3.set(id,isChecked); //赋值 updateTextViewInfo(); } }); holder.checkBox_1.setId(position); holder.checkBox_1.setChecked(checkPosition_1.get(position)); holder.checkBox_1.setOnCheckedChangeListener(new OnCheckedChangeListener(){ public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { // TODO Auto-generated method stub int id = buttonView.getId(); checkPosition_1.set(id,isChecked); //赋值 updateTextViewInfo(); } }); holder.checkBox_0.setId(position); holder.checkBox_0.setChecked(checkPosition_0.get(position)); holder.checkBox_0.setOnCheckedChangeListener(new OnCheckedChangeListener(){ public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { // TODO Auto-generated method stub int id = buttonView.getId(); checkPosition_0.set(id,isChecked); //赋值 updateTextViewInfo(); } }); return convertView; } class ViewHolder { TextView serial;//序号 TextView SS;//赛事 TextView ZDandKD;//主队 VS 客队 TextView BSSJ;//比赛时间 CheckBox checkBox_3,checkBox_1,checkBox_0; } }
我这里一个Item里面有3个CheckBox,所以有三个ArrayList<Boolean>列表。
如果在ListView中存在EditText的话,也会存在错乱问题。
解决方法http://blog.sina.com.cn/s/blog_80f8936801012cp7.html
虽然也不那么优美!
ListView用CHOICE_MODE_MULTIPLE属性实现多选
http://blog.csdn.net/pengkv/article/details/47151023
发表评论
-
某些android手机获取不到IMEI问题
2018-08-21 14:17 7491某些山寨机可能拿不到IMEI 如果非要IMEI可以模拟一个 ... -
APK安装成功后点击"打开"再按Home键应用会重启的问题
2018-08-21 14:13 2710安装系统SD卡里面的apk或者原有的程序更新版本的时候, ... -
使用volley链接Https地址时报SSLHandshakeException
2018-08-21 14:06 2031在真实设备上出现以下错误 ︰ Volley error: ... -
PhotoView+Viewpager双指缩放的时候出现pointerIndex out of range问题
2017-07-10 14:30 4186PhotoView+Viewpager开发图集效果的时候,在某 ... -
Android6.0权限封装
2017-04-01 12:04 1526简介 Android6.0中对权限分为了一般权限和危险权限。 ... -
实现点击 WebView 中的图片,调用原生控件展示图片
2017-04-01 11:14 2744现在有很多时候,我们的 App 都进行了混合开发,而最简单,最 ... -
Android 方法引用数超过 65535 优雅解决
2017-03-31 09:37 1474随着应用不断迭代更新,业务线的扩展,应用越来越大(比如:集成了 ... -
android引用资源@与属性?备忘单
2017-03-30 10:09 1234几天前我偶然发现了我A ... -
ViewPager 与SwipeRefreshLayout,RecyclerView,ScrollView滑动冲突解决方法
2017-03-30 09:55 6512ViewPager 作为一个横向滚动的控件, 在 ViewGr ... -
Android中一些你可能没注意的小效果实现
2017-02-15 21:09 0http://www.see-source.com/blog/ ... -
Android热修复:Andfix和Hotfix,两种方案的比较与实现
2017-02-15 21:00 0http://www.see-source.com/blog/ ... -
Android 从网页中跳转到本地App
2017-01-11 09:27 1823我们在使用微信、QQ、京东等app的时候,会发现有时候通过他们 ... -
Activity的启动模式和onNewIntent
2016-12-28 09:10 1292一、启动模式介绍 启 ... -
android5.0使用Notification报RemoteServiceException的解决办法
2016-08-31 16:13 11461有时android5.0下使用Notification会报如下 ... -
RecyclerView 中的 item 如何居中问题
2016-05-18 09:52 12392一个很简单的Item布局,我只要让它由上而下排列,文字居中 ... -
sqlite3:not found 解决方法
2015-12-08 16:03 2498最最最重要,先root你的手机吧 sqlite3 为一个可 ... -
隐藏底部虚拟键NavigationBar实现全屏
2015-10-08 17:20 9794import android.app.Activity; ... -
服务端执行慢或网络延迟时,Volley多次发送请求的问题
2015-07-27 15:40 6937原文: Android Volley double post ... -
如何获取 Android 设备的CPU核数、时钟频率以及内存大小
2015-06-30 17:04 4321原帖: http://www.jianshu.com/p/f7 ... -
android点滴5
2015-04-10 17:32 2003一些小效果的实现 http://www.see-source. ...
相关推荐
Android ListView的CheckBox错位Demo
1、ListView item中加入checkbox后onListItemClick 事件无法触发。 原因:checkbox的优先级高于ListItem于是屏蔽了ListItem的单击事件。 解决方案:设置checkbox的android:focusable="false" 2、选择其中的...
CheckBox+ListView混合使用,并缓存CheckBox+ListView混合使用,并缓存CheckBox+ListView混合使用,并缓存CheckBox+ListView混合使用,并缓存CheckBox+ListView混合使用,并缓存CheckBox+ListView混合使用,并缓存...
解决listview图片错位和选择错位的问题的Demo
在delphi中使用listview控件,启用checkbox选项后,默认是多选,此示例实现单选功能,在Delphi7下测试通过。
ListView和CheckBox错位(解决)
WPF中ListView添加CheckBox列
关键避免事件冲突,和复用错误. listview中添加CheckBox的完美实现
Android完美解决ListView复用导致的Checkbox状态混乱问题,具体见博客 http://www.jianshu.com/p/744dcca03a99
在ListView中添加CheckBox,实现多选条目
Android ListView错位问题之背景色错位
知识点:1、解决listView滚动时checkBox的选择状态会发生变化(絮乱);2、ListView的Item长按,点击时间并存,实现同一UI控件多需求响应各类事件;3、点击ListViewItem选中响应Item里的CheckBox;4、计算选中的项数...
带下拉刷新的ListView的中同时处理CheckBox,Button,和item事件
获取c# ListView CheckBox 索引值
完美解决了ListView和CheckBox的焦点冲突及CheckBox的复用问题,讲解了CheckBox的全选、反选、删除功能及在下拉刷新和下拉加载中如何保存CheckBox的先前的选中状态
Listview+Edittext和ListView+CheckBox
在Android某些开发需求当中,有时候需要在listveiw中加入checkbox实现单选,多选操作。
C#完美可编辑多列含CheckBox的ListView
WPF 使用MVVM设计模式对进行增删改操作 具体内容可以看我的博客:https://blog.csdn.net/Dear200892/article/details/78849632
每次ListView只有一个条目的CheckBox可以被选中,而且没有CheckBox复用图片错位的问题。