从零开始写一个Android待办事项ToDoListApp

概述

初衷

作为一个程序员,每天要处理的事项越来越多,有时一件事情花费了太多的时间而忽略了还有其他事情等着处理。开始是借助Microsoft ToDo 来记录下待办事项,时不时的去看一下,勾选掉已经完成,未完成暴露在面前就能分清轻重缓急而不至于漏掉。搞不懂最近更新什么东西,使用起来问题很多,还是自已撸一个得了,而且很多待办也属于自己的隐私,老是上传他们的云端也感觉不那个。

解决方案

本着借鉴和越简单越好的精神,直接使用RecyclerView列表控件来完成待办事项的展示和记录。
有时一个问题的处理可能需要的周期比较长,需要分步进行,再加上个子项目的功能。
已经完成的事情可能还需要回查,那就除了待办列表外,再加上个已完成的列表在需要的时候可以展示。
云端功能是好,但。。。暂不添加同步功能。

效果图

请忽略美工,本着实用简单为前提,够用就好。

从零开始写一个Android待办事项ToDoListApp

开撸

Bean

数据实体类最能反映解决思路,先放上bean类
这里借用了GreenDao来处理数据库方面的增删改查

  • 因为要传值,所以最后把实体序列化
  • 可能需要不同的待办列表,通过一个item表来管理,你也可以写死在代码里
  • 子项目与父项目的结构差不多,不想再搞一个表,直接通过type类型来区分
  • 状态用来管理是否已完成

ViewModel 是个好东西

接口继承请忽略,我是加入了一个MVP+ViewModel的代码架构,本着多学习多尝试的原则,小项目咱也用上了大架构,实际开发中非必需。

已完成列表

绑定监听事件

子项目

入在编辑界面中,通过点击父项目打开一个Fragmentg来编辑保存

补充

CheckBox

特别拉出来提一嘴,在列表中使用CheckBox来更新完成状态时,如果同时更新列表可能会出现错误提示
Cannot call this method while RecyclerView is computing a layout or scrolling
原因呢br> 在RecyclerView中使用CheckBox来处理移除等事件时,会导致锁定状态问题,较好的解决方案是避免使用 setOnCheckedChangeListener 而改为使用 setOnClickListener 监听点击事件

notifyItemRemoved

RecyclerView中移除项目后调用这个方法可以出现移除动画,但实际开发中,发现索引会出错,列表数据并没有跟着更新,当下的处理方式最好通知Adapter更新一个数据 notifyDataSetChanged

来源:曲幽

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年2月22日
下一篇 2022年2月22日

相关推荐