listview进行item多选、全选、反选操作。
来源:互联网 发布:慈世平生涯数据 编辑:程序博客网 时间:2024/04/29 16:31
<pre name="code" class="html"> Context context; List<MineCollectionEntity.BodyBean.ElementsBean> list; boolean isCheck; // 用来控制CheckBox的选中状况 private static HashMap<Integer, Boolean> isSelected; public CollectionListAdapter(Context context, List<MineCollectionEntity.BodyBean.ElementsBean> list, boolean isCheck) { this.context = context; this.list = list; this.isCheck = isCheck; isSelected = new HashMap<Integer, Boolean>(); // 初始化数据 initDate(); } // 初始化isSelected的数据 public void initDate() { isSelected = new HashMap<Integer, Boolean>(); for (int i = 0; i < list.size(); i++) { getIsSelected().put(i, false); } } public static HashMap<Integer, Boolean> getIsSelected() { return isSelected; } public static void setIsSelected(HashMap<Integer, Boolean> isSelected) { CollectionListAdapter.isSelected = isSelected; } public void setIsCheck(boolean isCheck) { this.isCheck = isCheck; } @Override public int getCount() { return list.size(); } @Override public Object getItem(int position) { return list.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(final int position, View convertView, ViewGroup parent) { ViewHolder viewHolder = null; if (convertView == null) { viewHolder = new ViewHolder(); convertView = View.inflate(context, R.layout.item_coll, null); viewHolder.iv_icon = (ImageView) convertView.findViewById(R.id.iv_icon); viewHolder.isCheakBox = (CheckBox) convertView.findViewById(R.id.isCheakBox); viewHolder.tv_time = (TextView) convertView.findViewById(R.id.tv_time); viewHolder.tv_title = (TextView) convertView.findViewById(R.id.tv_title); viewHolder.tv_jiangshi = (TextView) convertView.findViewById(R.id.tv_jiangshi); viewHolder.tv_fenlei = (TextView) convertView.findViewById(R.id.tv_fenlei); convertView.setTag(viewHolder); } else { viewHolder = (ViewHolder) convertView.getTag(); } MineCollectionEntity.BodyBean.ElementsBean bean = list.get(position); if (!TextUtils.isEmpty(bean.getCourseImgPath())) { Picasso.with(context).load(bean.getCourseImgPath()).placeholder(R.drawable.home_top).error(R.drawable.home_top).into(viewHolder.iv_icon); } if (isCheck) { viewHolder.isCheakBox.setVisibility(View.VISIBLE); viewHolder.isCheakBox.setChecked(getIsSelected().get(position)); } else { viewHolder.isCheakBox.setVisibility(View.GONE); } final ViewHolder finalViewHolder = viewHolder; convertView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { finalViewHolder.isCheakBox.setChecked(!finalViewHolder.isCheakBox.isChecked()); getIsSelected().put(position, finalViewHolder.isCheakBox.isChecked()); } }); viewHolder.isCheakBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { getIsSelected().put(position, isChecked); } }); viewHolder.tv_time.setText(bean.getDuration()); viewHolder.tv_title.setText(bean.getCourseName()); viewHolder.tv_jiangshi.setText(bean.getAuthorName()); return convertView; } class ViewHolder { ImageView iv_icon; TextView tv_time, tv_title, tv_jiangshi, tv_fenlei; CheckBox isCheakBox; }将点击的item的position保存到map中。
<pre name="code" class="html"> @OnClick(R.id.tv_all) public void allClick() { isAll = !isAll; if (isAll) { tv_all.setText("反选"); for (int i = 0; i < list.size(); i++) { CollectionListAdapter.getIsSelected().put(i, true); } } else { for (int i = 0; i < list.size(); i++) { tv_all.setText("全选"); if (CollectionListAdapter.getIsSelected().get(i)) { CollectionListAdapter.getIsSelected().put(i, false); } else { CollectionListAdapter.getIsSelected().put(i, true); } } } adapter.notifyDataSetChanged(); }
<span style="font-size:18px;"><strong>通过点击事件改编listview的显示。</strong></span>
0 0
- listview进行item多选、全选、反选操作。
- listView进行CheckBox的全选、反选
- Android Listview的item的全选反选问题
- 全选反选操作
- 安卓listview,GridView全选反选以及删除操作
- ListView的全选反选
- listview全选反选等
- 【javascript】如何在表格中进行全选、反选操作.
- Android中ListView中有Checkbox时,想获得item的position,以及全选,反选
- Android:ListView多选,全选,反选,全不全;
- RecyclerView嵌套CheckBox实现单选全选反选操作每条Item添加分割线
- ListView+CheckBox实现全选和反选
- ListView中的CheckBox全选反选
- ListView + CheckBox (全选,反选,取消)
- ListView和CheckBox嵌套,全选,反选
- ListView中添加CheckBox,进行多项选择,全选,反选,完美无Bug
- Android开发ListView中包含CheckBox(点击item选中CheckBox),并设置其全选反选等功能
- RecyclerView使用,item分割线,全选反选按钮实现
- php 统计网站流量
- JavaScript DOM事件(笔记)
- 深入分析Java ClassLoader原理
- 自定义ViewGroup打造微信朋友圈之九宫图效果
- PS常见问题03——如何绘制水平、竖直及45°直线
- listview进行item多选、全选、反选操作。
- li:hover与a:hover的区别
- 我的见解之hibernate(八)
- 学习日记20160822
- 任正非:用最优秀的人培养更优秀的人
- TOMCAT 端口占用解决方法
- 删数
- Java设计模式之单例模式
- MPAndroidChart的K线图上添加均线