这些时间做安卓盒子项目,因为安卓电视的显示器比较大,所以一个界面显示 很多数据 ,最多的时候,一个Actvity中用到了好几个RecyclerView。
在RecyclerView中实现Item选中处理时,发现用CheckBox的OnCheckedChangeListener监听事件时,会达不到预期,所以用了OnClickListener来实现。
主界面代码:
public class CheckRecyclerViewActivity extends AppCompatActivity implements CheckAdapter.CheckItemListener { //适配器 private CheckAdapter mCheckAdapter; //列表 private RecyclerView check_rcy; //全选操作 private CheckBox check_all_cb; //列表数据 private List<CheckBean> dataArray; //选中后的数据 private List<CheckBean> checkedList; private boolean isSelectAll; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_check_recyclerview); checkedList = new ArrayList<>(); initDatas(); initViews(); } private void initViews() { check_rcy = (RecyclerView) findViewById(R.id.check_rcy); check_all_cb = (CheckBox) findViewById(R.id.check_all_cb); LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false); check_rcy.setLayoutManager(linearLayoutManager); mCheckAdapter = new CheckAdapter(this, dataArray, this); check_rcy.setAdapter(mCheckAdapter); //如果使用CheckBox的OnCheckedChangeListener事件,则选中事件会有一些意想不到的结果,欢迎体验 //在列表Item中的CheckBox也一样的效果 check_all_cb.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { isSelectAll = !isSelectAll; checkedList.clear(); if (isSelectAll) {//全选处理 checkedList.addAll(dataArray); } for (CheckBean checkBean : dataArray) { checkBean.setChecked(isSelectAll); } mCheckAdapter.notifyDataSetChanged(); } }); } private void initDatas() { dataArray = new ArrayList<>(); for (int i = 0; i < 20; i++) { CheckBean bean = new CheckBean(); bean.setOrder(String.valueOf(i + 1)); bean.setName("名称_" + i); bean.setContent("第" + i + "条内容"); bean.setTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); dataArray.add(bean); } } @Override public void itemChecked(CheckBean checkBean, boolean isChecked) { //处理Item点击选中回调事件 if (isChecked) { //选中处理 if (!checkedList.contains(checkBean)) { checkedList.add(checkBean); } } else { //未选中处理 if (checkedList.contains(checkBean)) { checkedList.remove(checkBean); } } //判断列表数据是否全部选中 if (checkedList.size() == dataArray.size()) { check_all_cb.setChecked(true); } else { check_all_cb.setChecked(false); } }}
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
软考中级精品资料免费领
- 历年真题答案解析
- 备考技巧名师总结
- 高频考点精准押题
- 资料下载
- 历年真题
193.9 KB下载数265
191.63 KB下载数245
143.91 KB下载数1142
183.71 KB下载数642
644.84 KB下载数2755
相关文章
发现更多好内容猜你喜欢
AI推送时光机Android使用RecyclerView实现列表数据选择操作
后端开发2023-05-31
Android中怎么利用RecyclerView实现数据列表展示效果
后端开发2023-05-30
Android中怎么使用Spinner实现一个列表选择框
后端开发2023-05-30
如何利用Android组件实现一个列表选择框功能
后端开发2023-05-31
Android编程使用ListView实现数据列表显示的方法
后端开发2022-06-06
layui如何实现选择列表,打勾,点击确定返回数据
后端开发2024-04-02
springboot使用RedisRepository操作数据的实现
后端开发2024-04-02
Springboot使用Spring Data JPA实现数据库操作
后端开发2024-04-02
如何使用 PHP Stream 实现数据流操作
后端开发2024-04-02
如何使用python实现时间序列预测中的数据滑窗操作
后端开发2023-06-29
Go中使用gjson来操作JSON数据的实现
后端开发2024-04-02
如何使用MyBatis Plus实现数据库curd操作
后端开发2024-04-02
MongoDB安装使用并实现Python操作数据库
后端开发2024-04-02
C#中使用Spire.XLS来操作Excel数据的实现
后端开发2023-05-14
vue 使用el-table循环轮播数据列表的实现
后端开发2024-04-02
咦!没有更多了?去看看其它编程学习网 内容吧