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(); }}
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
- Android全选删除CheckBox的简单使用
- CheckBox的全选、取消、删除
- android checkBox (复选框)简单例子,全选的实现
- Android中checkbox全选功能的简单实现
- 隐藏或删除CheckboxSelectionModel的全选checkbox
- listview+checkBox的全选,批量删除
- DataList CheckBox 全选删除
- ListView全选删除CheckBox
- checkBox 全选 删除
- jquery checkbox全选删除
- 关于checkbox的ListView实现多选、全选、反选、删除更简单的方法
- 一个简单的checkbox全选的例子
- 一个简单的checkbox全选实现
- js实现简单的checkbox全选和取消全选效果
- jQuery最简单的checkbox全选和取消全选
- android完美解决ListView中CheckBox的全选、反选、批量删除的问题
- 安卓ListView中CheckBox的使用(支持Item列表项的删除,全选,全不选)
- 安卓ListView中CheckBox的使用(支持Item列表项的删除,全选,全不选)
- 小白学Java Web 13 探秘Servlet
- 纯CSS绘制三角形(各种角度)
- XStream的简单使用
- 仿1号店垂直滚动广告条实现
- 【CQBZOJ 2368】[线段树]球星
- Android全选删除CheckBox的简单使用
- ZJOI2017DAY1游记
- CCF第一题--门禁系统
- input表单属性的小bug
- 机器学习实战 笔记一:kNN分类算法
- 二分——hdu 4430 Yukari's Birthday
- 浅谈android Toast五种样式 (让你的Toast更炫)
- 关于I/O流中输入输出过程中利用装饰器所需了解的内容
- C#简易聊天机器人(控制台程序)