国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 会泽县| 乐清市| 宁都县| 垣曲县| 浦北县| 虹口区| 图片| 桓仁| 河西区| 兴隆县| 安徽省| 镇远县| 麻城市| 永嘉县| 华池县| 黑山县| 金昌市| 铜梁县| 东乌珠穆沁旗| 商洛市| 四平市| 永定县| 宁河县| 东丰县| 牙克石市| 蒙自县| 怀柔区| 旬阳县| 堆龙德庆县| 阿尔山市| 莱芜市| 溧阳市| 手机| 哈尔滨市| 虹口区| 淮北市| 灌云县| 左权县| 海宁市| 香港 | 嘉定区|