国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Android > 正文

Android RecycleView使用(CheckBox全選、反選、單選)

2019-10-22 18:28:26
字體:
供稿:網(wǎng)友

本文實例為大家分享了CheckBox全選、反選、單選的具體代碼,供大家參考,具體內(nèi)容如下

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);    //在加載數(shù)據(jù)之前配置    linearLayoutManager = new LinearLayoutManager(this);    recyclerView.setLayoutManager(linearLayoutManager);    //創(chuàng)建一個適配器    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;  //這個是數(shù)據(jù)集合  private final ArrayList<String> list;  public MyAdapter() {    map = new HashMap<>();    list = new ArrayList<>();    for (int i = 0; i < 30; i++) {      //添加30條數(shù)據(jù)      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" />

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網(wǎng)。


注:相關(guān)教程知識閱讀請移步到Android開發(fā)頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 涞水县| 湖北省| 绥宁县| 冷水江市| 丹阳市| 桂林市| 华亭县| 凭祥市| 镇原县| 汉川市| 鄂尔多斯市| 永登县| 当阳市| 漳平市| 台中市| 云安县| 湛江市| 车致| 成武县| 陆丰市| 隆化县| 江陵县| 湄潭县| 仙游县| 龙山县| 焦作市| 库尔勒市| 安国市| 崇礼县| 习水县| 綦江县| 东安县| 泗水县| 政和县| 张家川| 信阳市| 石首市| 丰都县| 鹤庆县| 固原市| 无为县|