CheckBox位置错位的解决
来源:互联网 发布:淘宝客博客网站源码 编辑:程序博客网 时间:2024/05/17 10:38
关于CheckBox位置错位也挺烦人的,今天也是摆弄了一上午,废话不多说。
CheckBox位置错乱主要是convertView点击时复用了,所以可以将CheckBox点击使用Map进行存储,点击则添加,再点击则删除。
private Map<Integer,Boolean> map=new HashMap<>();// 存放已被选中的CheckBox
首先先写一个Map,用来存储被选中的CheckBox
viewHolder.cb.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Overridepublic void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
}if(isChecked==true){ map.put(i,true);//i就是你自己getView方法内的int i,有的人可能是postion。}else { map.remove(i);}
}
如果你使用了setOnClickListener大可以将之替换为setOnCheckedChangeListener,至于会出现什么问题,在本人使用过以后没有遇见,如果后期遇到我会再继续添加
个人修改checkbox错位就是这么简单,只添加了这一个方法。如果哪位大神还有见解可以告诉小弟
个人也是看过之后解决自己问题后写了一个简便的,更多详解请看:http://blog.csdn.net/qq_20521573/article/details/52655570
之前添加的文件后来发现可能会出现自动点击了,后来查了一下找到了这个方法
这个方法则是如果不是用户点击的就会返回,如果是则会走else,设定方法if (!buttonView.isPressed()) { return;} else {}
附上我的adapter的类:(这是我的项目已经删除了隐私部分,没有跑过,所以如果有问题可以私聊我)
package cn.uniwa.uniwa.adapter;import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.CheckBox;import android.widget.CompoundButton;import android.widget.TextView;import com.hexun.caidao.hangqing.dao.HxStockInfo;import java.util.HashMap;import java.util.List;import java.util.Map;import cn.uniwa.uniwa.R;import cn.uniwa.uniwa.util.RecordSQLiteOpenHelper; /** * Created by Administrator on 2017/11/8. */ public class SearchAdapter extends BaseAdapter { private Context context; private List<HxStockInfo> liveShowData; LayoutInflater mInflater; private SQLiteDatabase db; private RecordSQLiteOpenHelper helper; private Map<Integer,Boolean> map=new HashMap<>();// 存放已被选中的CheckBox public SearchAdapter(Context context, List<HxStockInfo> liveShowData) { this.context = context; this.liveShowData = liveShowData; mInflater = LayoutInflater.from(context); this.helper = new RecordSQLiteOpenHelper(context); } @Override public int getCount() { return liveShowData.size(); } @Override public Object getItem(int i) { return liveShowData.get(i); } @Override public long getItemId(int i) { return i; } @Override public View getView(final int i, View convertView, ViewGroup viewGroup) { ViewHolder viewHolder = null; if (convertView == null) { convertView = mInflater.inflate(R.layout.hot_search_item_layout, null, false); viewHolder = new ViewHolder(); viewHolder.name = (TextView) convertView.findViewById(R.id.hot_search_name); viewHolder.id = (TextView) convertView.findViewById(R.id.hot_search_id); viewHolder.cb = (CheckBox) convertView.findViewById(R.id.hot_search_cb); convertView.setTag(viewHolder); } else { viewHolder = (ViewHolder) convertView.getTag(); } viewHolder.name.setText(liveShowData.get(i).getName()); viewHolder.id.setText(liveShowData.get(i).getCode()); viewHolder.cb.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if(isChecked==true){ map.put(i,true); }else { map.remove(i);// } } }); return convertView; }
public class ViewHolder { TextView name; TextView id; public CheckBox cb; }}
阅读全文
0 0
- CheckBox位置错位的解决
- android ListView中CheckBox错位的解决
- Android CheckBox显示错位的解决 && SparseBooleanArray的使用
- android 解决listview中checkBox错位选择
- ListView和CheckBox错位(解决)
- Android 解决某些机型CheckBox自定义按钮图片时发生的错位问题
- ListView的CheckBox的错位问题
- CRichEditCtrl系列讲堂8 解决CEdit/CRichEdit中SetSel错位或者位置判断错误的问题
- 解决ListView、gridview滚动过程中checkbox错位问题
- 解决TextView错位的问题
- 解决图片错位的问题
- html中generate的代码位置错位
- 解决ligerUI在设置的checkbox后因某些列内容过大导致的样式错位问题
- 一个div要呈现在另外一个div前面,解决绝对路径出现错位的办法。(获取控件的位置)
- 完美解决ListView和CheckBox焦点冲突及复用时CheckBox错位等一系列问题
- 完美解决ListView和CheckBox焦点冲突及复用时CheckBox错位等一系列问题
- 关于ListView中加入并选取checkbox错位的问题
- Adapter类型控件之ListView的checkbox错位问题解决方法
- 在eclipse中使用evosuite遇到了一些问题,提示windows找不到文件
- java 开发中常用方法
- sublime Text3
- Cron表达式:“/”与步增
- Hibernate二级缓存的配置及
- CheckBox位置错位的解决
- jQuery常用方法
- 常用默认端口号
- 关于CefSharp的坎坷之路
- 2017-11-10
- 数据结构与算法分析后缀变中缀
- vim
- 堆原理与c实现
- Spring boot 十四 读取 .properties 配置