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

首頁 > 系統 > Android > 正文

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

2019-12-12 02:05:28
字體:
來源:轉載
供稿:網友

本文實例為大家分享了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" />

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 井冈山市| 喜德县| 阜康市| 临武县| 孟津县| 滦南县| 太仆寺旗| 榆中县| 孝感市| 定西市| 青岛市| 北安市| 革吉县| 绵阳市| 内丘县| 临清市| 镇原县| 三原县| 屏南县| 扎赉特旗| 响水县| 富川| 双城市| 剑河县| 东兴市| 罗城| 融水| 镇平县| 黑水县| 周至县| 句容市| 开鲁县| 龙井市| 通榆县| 嘉兴市| 合江县| 黑河市| 永泰县| 融水| 北海市| 江油市|