Android全选删除CheckBox的简单使用

来源:互联网 发布:python 3.4环境变量 编辑:程序博客网 时间:2024/05/04 04:16

main activity:

public class RecordActivity extends AppCompatActivity {    @BindView(R.id.activity_item_record_recyclerview)    RecyclerView recyclerView;    @BindView(R.id.record_all_check)    CheckBox allcheck;    @BindView(R.id.record_btn_delete)    Button delete;    @BindView(R.id.record_btn_submit)    Button submit;    @BindView(R.id.record_all_ll)    LinearLayout ll_btn;    ItemAdapter adapter;    RecyclerView.LayoutManager manager;    ArrayList<ActionData> list;    private String actionName;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_record);        ButterKnife.bind(this);           manager = new LinearLayoutManager(this);        recyclerView.setLayoutManager(manager);        adapter = new ItemAdapter(list);        recyclerView.setAdapter(adapter);               setAllcheck();    }      private void setAllcheck(){        allcheck.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {            @Override            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {                if (isChecked){                    for (int i = 0; i < list.size(); i++) {                        if (!list.get(i).isCheck()){                            list.get(i).setCheck(true);                        }                    }                }else {                    //当全选的时候在取消全不选                    if (getChechedSum()== list.size()){                        for (int i = 0; i < list.size(); i++) {                            if (list.get(i).isCheck()){                                list.get(i).setCheck(false);                            }                        }                    }                }                UpdateRecyclerView();            }        });        adapter.setChecked(new ItemAdapter.onChecked() {            @Override            public void CheckedChanged(int position, boolean isChecked) {                //保存选择状态                list.get(position).setCheck(isChecked);                //全选了才是设全选按钮为选择                if (getChechedSum()== list.size()){                    allcheck.setChecked(true);                }else{                    //选择了才取消                    if (allcheck.isChecked()){                        allcheck.setChecked(false);                    }                }                UpdateRecyclerView();            }        });    }    /*        *解决Recycleyview刷新报错问题       */    private void UpdateRecyclerView() {        Handler handler = new Handler();        final Runnable r = new Runnable() {            public void run() {                adapter.notifyDataSetChanged();            }        };        handler.post(r);    }    /**     * 计算选择的数目     * @return     */    private int getChechedSum(){        int checkNum = 0;        for (int i = 0; i < list.size(); i++) {            if (list.get(i).isCheck()){                checkNum++;            }        }        return checkNum;    }    @Override    protected void onPause() {        super.onPause();        //不可见状态时刷新界面        for (int i = 0; i < list.size(); i++) {            if (list.get(i).isCheck()){                list.get(i).setCheck(false);            }        }        //选择了才取消        if (allcheck.isChecked()){            allcheck.setChecked(false);        }        UpdateRecyclerView();    }}


adpter:

public class ItemAdapter extends RecyclerView.Adapter<ItemAdapter.MyHolder>{    private ArrayList<ActionData> list;    private onChecked checked;    public void setChecked(onChecked checked) {        this.checked = checked;    }    public ItemAdapter(ArrayList<ActionData> list){        this.list = list;    }    @Override    public MyHolder onCreateViewHolder(ViewGroup parent, int viewType) {        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.record_list,parent,false);        MyHolder holder = new MyHolder(view);        return holder;    }    @Override    public void onBindViewHolder(final MyHolder holder, final int position) {        if (list.get(position).getFileName().contains(".txt")){            holder.record_icon.setImageResource(R.drawable.txt);        }else {            holder.record_icon.setImageResource(R.drawable.direct);        }        holder.record_name.setText(list.get(position).getFileName());        holder.record_size.setText(ClearData.getFormatSize((double) list.get(position).getFileSize()));        if (list.get(position).isCheck()){            holder.record_check.setChecked(true);        }else {            holder.record_check.setChecked(false);        }        //获取选择状态        holder.record_check.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {            @Override            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {                checked.CheckedChanged(position,isChecked);            }        });        //长按编辑        holder.itemView.setOnLongClickListener(new View.OnLongClickListener() {            @Override            public boolean onLongClick(View v) {                //设置编辑可见                return true; //返回true时不响应短按事件            }        });        //短按查看        holder.itemView.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                String path = list.get(position).getActionName()+"/"+list.get(position).getFileName();                if (list.get(position).getFileName().contains(".txt")){                    ItemActivity.getFilesinfo(path);                    Intent intent = new Intent(v.getContext(),ReadActivity.class);                    intent.putExtra("file_name",path);                    v.getContext().startActivity(intent);                }else {                    ItemActivity.getFilesinfo(path);                    Intent intent = new Intent(v.getContext(),RecordActivity.class);                    intent.putExtra("record_name",path);                    v.getContext().startActivity(intent);                }            }        });    }    @Override    public int getItemCount() {        return list.size();    }    protected static class MyHolder extends RecyclerView.ViewHolder{        @BindView(R.id.record_one_icon)        ImageView record_icon;        @BindView(R.id.record_one_name)        TextView record_name;        @BindView(R.id.record_one_gathersize)        TextView record_size;        @BindView(R.id.record_one_check)        CheckBox record_check;        public MyHolder(View itemView) {            super(itemView);            ButterKnife.bind(this,itemView);        }    }    public static interface onChecked{        //选择点击事件回调        public void CheckedChanged(int position, boolean isChecked);    }}


data:

public class ActionData extends DataSupport {    private String actionName;    private String gatherTime;    private String fileName;    private float fileSize;    private boolean isCheck;    public ActionData(){    }    public String getActionName() {        return actionName;    }    public void setActionName(String actionName) {        this.actionName = actionName;    }    public String getGatherTime() {        return gatherTime;    }    public void setGatherTime(String gatherTime) {        this.gatherTime = gatherTime;    }    public String getFileName() {        return fileName;    }    public void setFileName(String fileName) {        this.fileName = fileName;    }    public float getFileSize() {        return fileSize;    }    public void setFileSize(float fileSize) {        this.fileSize = fileSize;    }    public boolean isCheck() {        return isCheck;    }    public void setCheck(boolean check) {        isCheck = check;    }}


3 0
原创粉丝点击