Android:实现安卓小程序 您所在的位置:网站首页 手机备忘录怎么提醒功能 Android:实现安卓小程序

Android:实现安卓小程序

2024-07-16 12:17| 来源: 网络整理| 查看: 265

目录

1. 前言

2. 记事本功能需求

3. 部分关键代码解析及程序截图

3.1 记事本类的基本设计

3.2 记事本的数据存储设计

3.3 主界面的设计

3.4 记事本的编辑

3.5 记事本的背景色设置

3.6 记事本的闹铃功能

3.7 高级搜索

4. 总结

1. 前言

在学习安卓开发这门课程中期,学会了安卓开发的基本知识,比如,UI组件的应用,Intent的应用等等,同时期中作业为编写一个记事本程序,基于google的记事本demo, 但对于我本人来说,我更喜欢对代码从头到位都有自己的参与,于是我决定自己从头编写一个基本记事本的开发和记事本的相关扩展功能。

开发环境: Android Studio (API25以上)

2. 记事本功能需求 功能名称 功能概述 优先级 记事本基本功能 对记事本的增删改 最高 时间戳显示 记事本的最近编辑时间的显示 高 高级搜索 对记事本的查找 高 UI美化 对用户界面的美化 高 记事本背景色的设置 记事本背景色的设置 中 记事本闹钟设置 记事本的闹钟功能设置

 

 

 

 

 

 

 

3. 部分关键代码解析及程序截图 3.1 记事本类的基本设计

Note.java

//序列化便于本地存储 public class Note implements Serializable,Comparable{ private String title; private String create_date; private String update_date; private String text; private String background; private String date_alarm; public Note(String title,String text) { //标题 this.title = title; //创建日期 this.create_date = new SimpleDateFormat("yyyy-MM-dd HH-mm").format(new Date()); //更新日期 this.update_date = this.create_date; //内容 this.text = text; //背景色 this.background = null; //闹钟日期 this.date_alarm = ""; } } 3.2 记事本的数据存储设计

这里由于我当时暂未学习到SQLite的数据存储方式,采用了文件读写的方式来存储记事本的条目。

首先,在AndroidManifest.xml中设置允许程序读写文件的权限。

将Note存储在哈希表内,再将哈希表的内容写入文件中,同时文件存储在内置的SD卡的路径下。

NoteManager.java

public class NoteManager { private Context mContext; private List list; private String root_file; public NoteManager(Context context){ root_file = Environment.getExternalStorageDirectory().getAbsolutePath()+File.separator+"NoteList"; this.mContext = context; list = getNoteList(); } //更新当前notes列表 public void updateNoteList(List now_data){ try { File file = new File(root_file); if (!file.exists()){ file.createNewFile(); } ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(root_file)); oos.writeObject(now_data); oos.close(); } catch (Exception e1){ e1.printStackTrace(); } } } 3.3 主界面的设计

为了更好的用户体验,决定将用户设计设计成两种情况,一种为用户程序中暂无存储记事文件的情况下,一种为程序中已存有记事文件下。附上部分关键代码以及程序截图。

主界面-1 主界面-2 //检查数据列表是否为空,如果为空,那么渲染blank_View public void emptyListCheck(){ int number = 0; if(data!=null){ number=data.size(); } if(number == 0) { smlvMain.setVisibility(View.GONE); RelativeLayout empty = (RelativeLayout) findViewById(R.id.blank_view); empty.setVisibility(View.VISIBLE); fabMenu.setVisibility(View.VISIBLE); }else{ smlvMain.setVisibility(View.VISIBLE); RelativeLayout empty = (RelativeLayout) findViewById(R.id.blank_view); empty.setVisibility(View.GONE); } }

这里设置了Note条目的菜单模块和空白模块,若数据列表为空,则隐藏条目菜单模块,显示空白模块,若不为空,则隐藏空白模块,显示菜单模块。

3.4 记事本的编辑

可以看到在主界面的右下角存在一个浮动窗口菜单,这里涉及到第三方依赖的添加:

com.getbase.floatingactionbutton.FloatingActionButton

res/layout/activity_main.xml

这里可以看到对浮动菜单栏的xml设计,包含两种功能,新建Note和应用的退出,涉及到功能的逻辑代码这里就不赘述了。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有