Android RecycleView使用(CheckBox全选、反选、单选)

本文实例为大家分享了CheckBox全选、反选、单选的具体代码,供大家参考,具体内容如下

MainActiivity

package com.bwie.day06; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.View; import com.bwie.day06.myadapter.MyAdapter; public class MainActivity extends AppCompatActivity { private MyAdapter myAdapter; private LinearLayoutManager linearLayoutManager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //初始化控件 RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recyclerview); //在加载数据之前配置 linearLayoutManager = new LinearLayoutManager(this); recyclerView.setLayoutManager(linearLayoutManager); //创建一个适配器 myAdapter = new MyAdapter(); recyclerView.setAdapter(myAdapter); } public void btnAll(View view) { myAdapter.All(); } public void btnner(View view) { myAdapter.neverall(); } }

Adapter

package com.bwie.day06.myadapter; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.CheckBox; import android.widget.TextView; import com.bwie.day06.R; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; import java.util.Set; public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder> { //这个是checkbox的Hashmap集合 private final HashMap<Integer, Boolean> map; //这个是数据集合 private final ArrayList<String> list; public MyAdapter() { map = new HashMap<>(); list = new ArrayList<>(); for (int i = 0; i < 30; i++) { //添加30条数据 list.add("这是条目" + i); map.put(i, false); } } /** * 全选 */ public void All() { Set<Map.Entry<Integer, Boolean>> entries = map.entrySet(); boolean shouldall = false; for (Map.Entry<Integer, Boolean> entry : entries) { Boolean value = entry.getValue(); if (!value) { shouldall = true; break; } } for (Map.Entry<Integer, Boolean> entry : entries) { entry.setValue(shouldall); } notifyDataSetChanged(); } /** * 反选 */ public void neverall() { Set<Map.Entry<Integer, Boolean>> entries = map.entrySet(); for (Map.Entry<Integer, Boolean> entry : entries) { entry.setValue(!entry.getValue()); } notifyDataSetChanged(); } /** * 单选 * * @param postion */ public void singlesel(int postion) { Set<Map.Entry<Integer, Boolean>> entries = map.entrySet(); for (Map.Entry<Integer, Boolean> entry : entries) { entry.setValue(false); } map.put(postion, true); notifyDataSetChanged(); } //这里主要初始化布局控件 @Override public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { RecyclerView.LayoutManager layoutManager = ((RecyclerView) parent).getLayoutManager(); //初始化布局文件 View inflate = LayoutInflater.from(parent.getContext()).inflate(R.layout.check, parent, false); return new MyViewHolder(inflate); } @Override public void onBindViewHolder(final MyViewHolder holder, final int position) { //放入集合中的值 holder.txt.setText(list.get(position)); holder.checkBox.setChecked(map.get(position)); holder.checkBox.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { map.put(position, !map.get(position)); //刷新适配器 notifyDataSetChanged(); //单选 // singlesel(position); } }); } @Override public int getItemCount() { return list.size(); } public class MyViewHolder extends RecyclerView.ViewHolder { View itemView; private TextView txt; private CheckBox checkBox; //初始化控件 public MyViewHolder(View itemView) { super(itemView); this.itemView = itemView; txt = (TextView) itemView.findViewById(R.id.txt); checkBox = (CheckBox) itemView.findViewById(R.id.cbox); } } }

main.xml

<LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <Button android:onClick="btnAll" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="全选" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="反选" android:onClick="btnner"/> </LinearLayout> <android.support.v7.widget.RecyclerView android:id="@+id/recyclerview" android:layout_width="match_parent" android:layout_height="match_parent"></android.support.v7.widget.RecyclerView>

Check.xml

<CheckBox android:id="@+id/cbox" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:text="dfdfdfdf" android:id="@+id/txt" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="20sp" />

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

时间: 2024-07-30 13:17:00

Android RecycleView使用(CheckBox全选、反选、单选)的相关文章

jQuery实现按钮的点击 全选/反选 单选框/复选框 文本框 表单验证_jquery

jQuery实现按钮的点击 全选/反选 单选框/复选框 文本框 表单验证 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'index.jsp' starting page</title> &l

javascritp checkbox全选反选代码

javascritp checkbox全选反选代码 //全选与反选 <script type="text/网页特效"> var checkflag = "false"; function check(field) {      if (checkflag == "false")      {            for (i = 0; i < field.length; i++)            {           

jquery checkbox全选反选实现代码

在jquery中我们要判断checkbox是否选中我们可以直接使用 if($("#id").attr("checked")==true) 来操作. 那么如果我们要实现多个checkbox全选反选就可以利用each进行遍历了 jquery代码  代码如下 复制代码 function selectall(){      var arrChk=$("input[name='deleteid']");//checkbox名称        $(arrCh

jquery、js操作checkbox全选反选

 全选反选checkbox在实际应用中比较常见,本文有个不错的示例,大家可以参考下 操作checkbox,全选反选   代码如下: //全选  function checkAll() {  $('input[name="TheID"]').attr("checked", "checked");  }  //反选  function uncheckAll() {  $('input[name="TheID"]').each(fu

jquery、js操作checkbox全选反选_javascript技巧

操作checkbox,全选反选 复制代码 代码如下: //全选 function checkAll() { $('input[name="TheID"]').attr("checked", "checked"); } //反选 function uncheckAll() { $('input[name="TheID"]').each(function() { this.checked = !this.checked; }) }

Jquery CheckBox全选方法代码附js checkbox全选反选代码_jquery

jquery方法如下: 复制代码 代码如下: function CheckAll(val) { $("input[name='chkJob']").each(function() { this.checked = val; }); $("#chkAll").attr("checked", val);//设定全选按钮状态 } val 该参数传递的是全选按钮的选择状态 name='chkJob' 这个为列表中的checkbox名称 chkAll 就为

总结jQuery checkbox全选/反选代码

在修改Hi GPA的时候需要增加一个全选用户的功能,结果被坑惨了. 首先,最终代码是这么写的:  代码如下 复制代码 var text = $('#select-all-student').html(); if (text == '全选') {     $('input[name="studentNumber"]').prop('checked', true);     $('#select-all-student').html('取消全选') } else {     $('inpu

Gridview使用CheckBox全选与单选采用js实现同时高亮显示选择行_实用技巧

Insus.NET对Gridview使用CheckBox单选与全选功能再次进行简单演示,选中的行,使用高亮显示,让用户一目了然看到哪一行被选择了.本例中,使用前端脚本Javascript来实现.还是先看看Insus.NET做出来的效果: Insus.NET原本是从数据库获取数据并绑定至GridView控件的,为了在学asp.net的网友,也能轻易操作,因此这个想法,采用对象存储数据. 首先创建一个对象,[对联]的对象: Couplets.cs 复制代码 代码如下: using System; u

checkbox 全选 反选的js代码

全选 function checkall(form, prefix, checkall) {  var checkall = checkall ? checkall : 'chkall';  for(var i = 0; i < form.elements.length; i++) {   var e = form.elements[i];   if(e.name && e.name != checkall && (!prefix || (prefix &&a

javaScript checkbox 全选/反选及批量删除_表单特效

前台代码 复制代码 代码如下: <script type="text/javascript"> var a; function CheckAll(){ if(a==1) { for(var i=0;i<window.document.form1.elements.length;i++) { var e = form1.elements[i]; e.checked =false; } a=0; } else { for(var i=0;i<window.docum