安卓入门系列-09一个实战小项目(备忘录Memo)
一个简单的安卓平台下的备忘录
背景
之前已经介绍了不少的控件(TextView和ListView等等)以及开发中最常见的组件(Activity)(Service的权重在我心中没有Activity重要,因为曾经尝试过没有Activity启动App,这是不可行的,看底层代码就知道启动过程是从Activity开始的)。
基础的知识已经知道了,难免想要上手一个项目,这里开发一个记录备忘录的小项目。该项目,可以说“麻雀虽小,五脏俱全”,除了数据库,网络这方面没有涉及,其他都有应用。由于这是一个纯本地存储的项目,备忘录内容云同步未涉及。(后续考虑添加)
创建一个项目
首先,创建一个新项目(Memo,包名任意),一路默认(安卓入门系列01介绍了)。Gradle编译完成后,尝试虚拟机运行。接着,我们修改基础配置。可以看到默认的这个界面效果,很难受的就是这个顶部的bar,不需要,我需要自定义的topbar,所以去掉它。(前面博客提到两种方法,这里修改parent)
代码的封装
在我个人的开发经历中,对封装的要求比较高,我不喜欢过多代码的堆砌,尤其是这类业务代码,所以函数或者类,接口的封装在开发过程中是不可或缺的。
首先,写一个常用的topbar,后面多次使用。 这个bar使用的是design包里面的AppBarLayout布局和Toolbar控件,需要添加依赖。
然后,在activity_main.xml添加如下,效果显著。
<FrameLayoutadroid:layout_width="match_parent"adroid:layout_height="46dp"><include layout="@layout/topbar"></include>
</FrameLayout>
具体编码实现界面效果和业务逻辑
这部分本来是想要详细讲述布局和代码实现,包括本地存储的一些基础操作,然而考虑到个人时间和精力,要将即使是这样的一个小项目用文字描述细致,对我而言有些太难了,所以后续的内容只能大致提一下思路,具体的可以到GitHub下载我的源码看。(有详细备注)
- 开发方法
- 采用敏捷开发策略
- 采用快速原型开发方式(优先完成基础功能,再进一步优化)
- 配置文件
- 第三方依赖添加
- ‘com.getbase:floatingactionbutton:1.9.0’
- 浮动窗口
- ‘com.quinny898.library.persistentsearch:library:1.1.0-SNAPSHOT’
- 搜索框
- ‘com.baoyz.swipemenulistview:library:1.3.0’
- ‘com.getbase:floatingactionbutton:1.9.0’
- 第三方依赖添加
- 不完善之处
- 本app的开发参考几个开源项目的理念和代码设计
- 首页每一项之间预先构想的排序,最后由于时间没有实现
- 本app界面太过平淡
- 改进之处
- 国内的很多记事本类型App是没有内部搜索,一般是集成到桌面的搜索功能里,而很多用户不清楚这个设定或者不喜欢,我把这个功能设计在备忘录主页
补充说明
项目的GitHub仓库地址如下,欢迎star或者fork。下面几张图,是编译完成的安卓应用实际的运行截图。
安卓入门系列-09一个实战小项目(备忘录Memo)相关推荐
- Vue快速入门(附实战小项目:记事本、天气预报、音乐播放器)
文章目录 一.前言 二.Vue.js安装 三.初始化Vue项目 四.项目目录解析 五.Vue核心指令 1.插值表达式 2.v-text 3.v-html 4.v-on 5.计数器实战 6.v-show ...
- 【敬初学者】Python基础学完了,该怎么知道自己学的怎么样呢?十个经典实战小项目附源码
前言 1.街霸游戏 1.1 KO街霸 程序完整源码 程序的输出界面 1.2 春丽VS巴洛克 参考源码 2.猜谜游戏 2.1简单的猜数字游戏 项目要求 参考源码 2.2 进阶的猜姓名游戏 项目要求 参考 ...
- 我用Python把抖音上的美女图片转字符画,期望的AI目标更进一步【机器学习算法实战小项目,k聚类算法图片转化字符画】
大家好,我是辣条. 最近在学习算法,今天给大家带来一个机器学习实战小项目 项目效果展示 学习目标 1.cv2转换图片数据 2.numpy提取图片矩阵数据 3.k均值算法获取图片的分类 工具使用 开 ...
- libhv tcp实战小项目
libhv Tcp小项目实战 一.概述 1.包头 2.心跳 3.任务队列 二.包头 2字节 2字节 4字节 4字节 2字节 1字节 1字节 起始标志 版本号(N) Command(命令ID) 消息体长 ...
- SparkSQL实战小项目之热门商品top3
SparkSQL实战小项目之热门商品top3 一.说明及需求分析 二.准备测试数据 三.思路分析 四.编码实现 五.验证结果 一.说明及需求分析 软件及环境: centos7 + hive-2.3.3 ...
- SAP PM 入门系列11 - 一个维护通知单只能创建一个维护订单?
SAP PM 入门系列11 - 一个维护通知单只能创建一个维护订单? 在SAP系统里,执行事务代码IW34,输入Notification号码100314924,以及Order type ZM03,试图 ...
- 我的第一个MFC小项目(4)之 位图转换(续)
非常感谢Imageshop的指正,代码有修改,主要是: 计算8位位图像素位使用了更高效的整点运算: 去除多余的变量检测. 求网友们支招:在32位位图中有Alpha值,在转换成8位灰阶位图的时候可以直接 ...
- python+opencv别踩白块儿游戏辅助,一天一个opencv小项目(已开源)
python+opencv别踩白块儿游戏辅助,一天一个opencv小项目(已开源) 见链接
- 我的第一个JDBC小项目
我的第一个JDBC小项目 引言:以下都是个人学习中的一些总结,本人能力有限,其中存在很多错误与不足,还请阅读者斧正.!并非教程!!并非教程!!并非教程! JDBC是Java DataBase Conn ...
最新文章
- 随笔2:关于linux和python
- 阿里云高级总监谈超大规模超高性能分布式快存储系统
- 若依前后端分离版实现基于el-tree实现选中部门树节点同步选中多选框的操作
- 【翻译】Keras.NET简介 - 高级神经网络API in C#
- 紫光物联linux登录账号,紫光展锐打造操作系统生态,赋能万物互联智能时代
- SweetAlert – 替代 Alert 的漂亮的提示效果
- 计算机控制系统视频关守平,国家级精品课《计算机控制系统》课程建设研讨会顺利召开...
- Maven学习总结(53)——利用Maven插件构建镜像进行持续交付中的版本号管理
- 计算机网络---UDP协议与TCP协议
- 2017CCPC哈尔滨 F:Permutation(构造)
- 链栈判断回文 java_C语言链栈判断回文
- event.srcElement 说明 方法 技巧
- json 字符串和json对象之间相互转换
- yum安装mysql和mysql源,配置mysql
- Win10 cmd禁用笔记本自带键盘
- Vue文字走马灯(文字轮播)组件
- 东方财富:资金流向表爬虫
- 将个人微信公众号变成查券返利机器人完美教程分享
- VBS奇葩操作 “我是猪”
- 算法 319. 灯泡开关 python