0%

安卓开发:具有天气预报功能的记事本APP (一)记事本

1

本项目Github

Github

代码解读 Code interpretation

记事本功能 NoteBook funuction

包含两个部分,一个是部分单纯的文本记录功能,还有一个是每一个笔记的提醒时间设置功能。每一个笔记的id、标题、内容和提醒时间等相关信息都作为Note类的属性进行存放。

1592176561(1)

SQLite数据库中表的创建也是按照Note类的属性的。

1592176932(1)

用户点击首页右上角的“+”号创建笔记,笔记的创建需要用户输入标题和内容,提醒时间如果没有设置就会使用默认的提醒时间,提交笔记保存后会判断笔记输入的内容是否为空,即文本长度为0,然后将输入的内容封装成Note类型的对象,然后调用SimpleDatabase类中的addNote方法,传递参数为Note对象,使用ContentValues
插入数据,每一个笔记的id属性都是由插入数据库中存储后才产生并返回的,id是唯一的所以可以根据笔记的id进行查找。

1592176879(1)

首页展示用户的已有的笔记列表时会使用List<Note>存储从数据库查找的所有已经创建保存的笔记。如果用户还没有保存过笔记,即List<Note>是空的,就展示activity_main.xml中TextView“未记过笔记,请点右上方+进行创建”的提示信息。

1592177673(1)

1592177819(1)

如果搜寻结果不为空,即用户记录过笔记,就用displayList方法将List<Note>传递进去,借助RecyclerView、Adapter显示数据。

1592177959(1)

1592178238

首页中笔记的显示还要添加被选时允许展示笔记详情内容的事件,用的是itemView的setOnClickListener,点击后会跳转到对应笔记的内容显示,用户的是笔记的ID属性进行Activity的跳转。

1592178736(1)

其中一个重要的方法是通过id获取笔记,利用id作为数据库查找的依据。

此时界面右下方的FloatingActionButton提供了删除功能,设置的点击事件为笔记删除,用的是SimpleDatabase的deleNote方法,传入了Note对象的id属性进行删除,并且用Toast提醒用户笔记已经被删除的信息。

1592178849(1)

1592178803(1)

笔记详情展示界面还有允许用户编辑修改的功能,编辑按钮在Toolbar上面的Menu中,如果选择的是edit的item就要跳转到编辑界面,这个界面与笔记创建界面几乎相同,但是完成编辑后调用的是SimpleDatabase的editNote方法,同样是传入将笔记的id、标题、时间、内容等信息封装而成的对象,在数据库中的更新也是借助笔记的id进行的。

1592179042(1)

1592179204(1)

闹钟提醒功能 Clock function

ClockManager类中存放的是获取系统闹钟服务、取消闹钟以及添加脑中的服务,在添加闹钟与更新闹钟均使用addAlarm函数,在函数中,添加闹钟前,如果已经添加过闹钟,则该闹钟被取消。

在名字为edit和add_note的xml文件中,添加了提醒时间框。

在EditText中设置参数,让其不可输入但是可以点击

在add_note类中datePickClick在点击该EditText的时候被调用。弹出时间选择器供用户选择时间

cce31264977b20b35cf20d5c619722c

点击保存后,以下代码会在系统中添加闹钟用于提醒

到时间后,ClockReceive会接收到广播,onReceive函数接收到广播后调用postToClockActivity函数来启动ClockActivity类,ClockActivity调用函数clock();

弹出dialog_alarm_layout布局,用于提醒用户事件未完成

0194ac593952ca6dc17f4ce3b24ec54

函数中以下三个函数让提醒的界面有闹铃声音以及震动

如果屏幕没有唤醒则调用wakeUpAndUnlock函数

-------------本文结束感谢您的阅读-------------