基于Android平台的记事本软件(Android Studio项目+报告+app文件)

这篇具有很好参考价值的文章主要介绍了基于Android平台的记事本软件(Android Studio项目+报告+app文件)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

移动应用开发技术

期末考核报告

   目:        基于Android平台的记事本软件            

学生姓名                            

学生学号                            

                              

                                 

指导教师                          

 文章来源地址https://www.toymoban.com/news/detail-477385.html

2022    06    20  

 

目录

1.    项目来源及背景... 4

2.    需求分析... 4

2.1 记事功能需求分析:... 4

2.1.1 显示记事... 4

2.1.2 添加记事... 4

2.1.3 编辑记事... 5

2.2 账户管理... 5

2.2.1 注册账号... 5

2.2.2 登录... 5

2.2.3 修改密码... 5

2.2.4 注销账号... 5

2.3 数据库需求分析... 6

2.4 界面需求分析... 6

3.    系统总体设计... 7

3.1账户管理... 7

3.1.1登录... 7

3.1.2 注册... 8

3.1.3 修改密码... 9

3.1.4 注销... 10

3.2 记事功能... 11

4.    详细设计与实现... 12

4.1 记事相关功能... 12

4.1.1 显示记事... 12

4.1.2 添加记事... 14

4.1.3     编辑记事... 15

4.1.4 账户管理... 18

4.2 数据库... 21

4.3 背景音乐... 21

4.4 界面美化... 22

4.5其他细节... 23

5.    总结与体会... 23

参考文献... 24

  1. 项目来源及背景

据准确数据调查,截至2021年全球人口数量为78.3亿,全球有52.2亿人使用手机,相当于世界总人口的66.6%,互联网正在占领着全球化的趋势。随着生活节奏的加快, 工作和生活的双重压力全面侵袭着人们,如何避免忘记工作和生活中的诸多事情而造成不良的后果,就显得非常重要。为此,我开发了一款基于Android系统的简单记事本,它能够便携记录生活和工作的诸多事情,从而帮助人们有条理的进行时间管理。

本系统在Windows系统下的Android Studio平台中开发,代码采用Java语言编写,数据库为安全轻便的SQLite。使用的配置也是简单的BaseAdapter作为基础数据适配器,简单而又高效的进行开发。虽然本项目只是一款基础的日记本,但是会在今后不断的探索中将功能与维护性进一步的修正、改造与完善,满足各类客户的需求。

  1. 需求分析

2.1 记事功能需求分析:

2.1.1 显示记事

用户打开记事本一定要能够看到之前的写的记事内容,所以进入主页面后,软件应该从数据库中搜索出该用户所写的全部记事,并按照一定顺序排列输出。

记事本记事可以添加多条记事(理论上无数条,只要数据库能放下),在主页面用户看到的应该是记事列表,该列表存放了其所写的所有记事。记事内容不应该显示直接在列表中,这样太占空间,所以数据库中设计标题列,将标题标题显示在列表中,点击标题进入另一界面,显示详细记事内容。

2.1.2 添加记事

设置添加记事内容入口,用户点击后进入,开始编辑记事的标题和内容。

2.1.3 编辑记事

在主界面的记事列表中。点击一条记事,能够进行编辑,包括更改记事(更新)和删除记事。

2.2 账户管理

为了更好的保护客户的隐私要求,也为了能让同一台手机的不同用户能够使用该软件,软件有专门的账户管理。

记事本供本机中多名用户使用,设计账户管理可以让多个用户使用该软件,且保证每个人只能看到自己的记事内容。这就相当于是一把锁。

2.2.1 注册账号

注册账号是要对密码进行确认,防止用户填写密码时填写错误,而导致该账号虽然注册了,但是密码相当于遗忘了,相当于账号刚注销变报废。当然,账号和密码都不能为空。

2.2.2 登录

登录时对账号密码进行检验,包括是否为空,账号密码是否正确。根据不同错误,对用户进行提示。

为了让用户不用每次登录都要输入账号密码,要增加记住密码选项。(记住密码也有不足之处,如果其他用户使用该机中的此软件,那他就可以直接登录)

2.2.3 修改密码

修改密码时,要输入账号、旧密码、新密码并确认新密码,四项缺一不可,任何一项为空,都要对用户进行提示。四项填写完成用户确认后,进行账号密码比对,验证成功再进行新密码的确认,最后更换密码。

2.2.4 注销账号

用户不想再使用该软件后,可以主要注销账户。注销账户要同时删除数据库中该用户的记事数据。

2.3 数据库需求分析

软件主要分为两大模块(登录和记事),所以需要创建两个表,分别为用户表和记事表

2.4 界面需求分析

界面在移动开发平台开发中非常重要,也是用户使用软件的先决条件。该记事本软件总共有8个界面,分别为登录界面、注册界面、密码修改界面、注销界面、记事列表显示界面(主界面)、添加记事界面和编辑记事界面和更新记事界面。

背景色调要以简洁、清新为主,尽量不让使用者产生厌烦的心理。

  1. 系统总体设计

3.1账户管理

3.1.1登录

基于Android平台的记事本软件(Android Studio项目+报告+app文件)

3.1.2 注册

基于Android平台的记事本软件(Android Studio项目+报告+app文件)

 

3.1.3 修改密码

基于Android平台的记事本软件(Android Studio项目+报告+app文件)

 

3.1.4 注销

基于Android平台的记事本软件(Android Studio项目+报告+app文件)

 

3.2 记事功能

基于Android平台的记事本软件(Android Studio项目+报告+app文件)

 

  1. 详细设计与实现

4.1 记事相关功能

4.1.1 显示记事

基于Android平台的记事本软件(Android Studio项目+报告+app文件)

 

登录后主界面为Listview组件展示的记事列表,该组件显示用户的所有记事数据,每一条记事数据展示在item上的只是该条记事数据中的标题和最新编辑时间。

记事列表显示以最新编辑时间递减显示,这样可以让用户最新添加和编辑的记事排在最前面,更加人性便捷。

由于记事本界面的记事列表是使用ListView控件展示的,因此需要创建一个数据适配器对ListView控件进行数据适配,具体步骤如下:

  1. 创建MemoAdapter

创建一个MemoAdapter类继承自BaseAdapter类。

  1. 创建Holder

MemoAdapter类中创建一个Holder类来初始化ltem界面中的控件。

BaseAdapter是一款是最万能最好用的数据适配器之一,BaseAdapter

View getView(final int position, View convertView, ViewGroup parent) 填充每个item的可视内容并返回。getView方法是由系统自动回调的方法,每当可视区域内需要刷新一个item时就会被调用,用来填充item内容、绑定事件等其他操作。因此,对ListView内容的数据填充都在这个方法中实现。

Holder类中,只有两个TextView参数,texttextTime,分别代表一个记事的标题和最新的编辑时间。

第一次调用getView方法时convertView都为null,因此刚进入主页面是,会对布局实例化:
convertView = LayoutInflater.from(context).inflate(R.layout.list_member, null);

View.inflate作用是将layout_item转换成View对象。界面中ListView能显示多少个itemgetView就要被调用多少次。

getView中实例化一个Holder对象holderholder中的参数分别用显示界面中对应的TextView实例化,这相当于holder绑定了界面中的两个组件。

convertView.setTag(hodler), holder数据存储在convertView中。

如果convertView实例化,那么直接用getTag取出其中的holder数据,此时holder绑定了界面中的两个组件。

View中的setTag()表示给View添加一个格外的数据,可以用getTag()将这个数据取出来。

之后便是用游标将数据中的对应的数据(标题和最新编辑时间)取出来,再复制给holder中的两个对应的成员(现在是xml中的TextView组件)。这样就将数据显示出来了。

详细代码见源程序。

4.1.2 添加记事

基于Android平台的记事本软件(Android Studio项目+报告+app文件)

添加记事,只要将组件中的String内容取出,再放入数据库中就可以了。

数据操作语句:database.insert(sqliteHelper.tableName, null, values);

向数据库中插入记事数据时,要在也要插入用户名,以便显示记事数据时,能精准查询到具体某个用户所写的记事。这就要求从登录后,用户名要在各个Activity之间传递,只需要用Intent传递就可以了。

      1. 编辑记事

基于Android平台的记事本软件(Android Studio项目+报告+app文件)

 

编辑包括删除和修改(更新)。

删除根据该条记事数据的id删除,id为每条记事数据的自增列,也是主键。delete(sqliteHelper.tableName, sqliteHelper.id + "=" + pos, null);

为了避免误删除,设置提示:

  1. AlertDialog.Builder builder = new AlertDialog.Builder(OneMemoActivity.this);  
  2.                 builder.setMessage("你确定要删除吗?")  
  3.                         .setTitle("提示")  
  4.                         .setPositiveButton("确定",  
  5.                                 new DialogInterface.OnClickListener() {  
  6.                                     @Override  
  7.                                     public void onClick(DialogInterface dialog, int which) {  
  8.                                         deleteByPos();  
  9.                                         dialog.dismiss();  
  10.                                         finish();  
  11.                                     }  
  12.                                 })  
  13.                         .setNegativeButton(",刚才我手滑了",  
  14.                                 new DialogInterface.OnClickListener() {  
  15.                                     @Override  
  16.                                     public void onClick(DialogInterface dialog, int which) {  
  17.                                         dialog.dismiss();  
  18.                                     }  
  19.                                 })  
  20.                         .show(); 

效果如下图:

基于Android平台的记事本软件(Android Studio项目+报告+app文件)

用户点击编辑按钮,进入编辑界面,进行记事的修改,修改后点确认就完成修改。修改就和添加记事的操作一致了。见下图:

基于Android平台的记事本软件(Android Studio项目+报告+app文件)

 

4.1.4 账户管理

              1) 注册、修改密码、注销

注册、密码修改和注销实大同小异。不同的是注销是,也要在数据库中删除注销用户的记事数据。

delete(sqliteHelper.tableName, sqliteHelper.user + "=" + userName, null); 基于Android平台的记事本软件(Android Studio项目+报告+app文件)基于Android平台的记事本软件(Android Studio项目+报告+app文件)基于Android平台的记事本软件(Android Studio项目+报告+app文件)

从左到右分别为注册、修改密码、注销

  1. 登录

登录实际上主要涉及的是账户密码的验证,这只需要用数据库语句从数据库中查询是否有该用户名和密码的一致的数据就可以了。

       这里的新颖之处在于账号记住密码:

       为了让用户不用每次登录都要输入账号密码,要增加记住密码选项。(记住密码也有不足之处,如果其他用户使用该机中的此软件,那他就可以直接登录)

基于Android平台的记事本软件(Android Studio项目+报告+app文件)

4.2 数据库

软件主要分为两大模块(登录和记事),所以需要创建两个表,分别为用户表和记事表

字段名

数据类型

是否为主键

描述

id

integer

编号

datas

text

记事内容

user

text

用户名

lastModifyTime

text

最新编辑时间

title

text

记事标题

字段名

数据类型

是否为主键

描述

_id

integer

编号

user_name

text

用户名

user_pwd

text

密码

项目中MemoSQLiteOpenHelper类继承于SQLiteOpenHelper,用于创建记事本数据库数据表。UserDataManager类是数据操作管理类,数据库数据表的创建,数据的增删改查代码都在这里。

4.3 背景音乐

背景音乐的添加也是很简单的,这和实验中做过的代码一样,需要注意的是,Service需要在AndroidManifest.xml中经行注册。用编译软件快捷添加的Service实际上会自动进行注册。

Service在主显示ActivityMainActivity)启动时开始运行,在该Activity销毁时,同时也把改Service也进行销毁。这样用户登录成功后,背景音乐便会想起。

注:此程序的默认ActivityLoginActivity,因为用户进入软件必须要进行登录。修改默认ActivityAndroidManifest.xml进行。

背景音乐存放在res/raw文件夹下。

4.4 界面美化

为了让软件更加美观,对软件图标进行了设置,软件中的界面也添加了一些图标、图片,添加记事的按钮采用悬浮按钮,按钮中也添加了图片。

悬浮按钮:

<com.google.android.material.floatingactionbutton.FloatingActionButton

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:id="@+id/add"

            android:layout_gravity="right|bottom"

            android:layout_marginRight="10dp"

            android:layout_marginBottom="10dp"

            android:src="@drawable/add"

            app:borderWidth="0dp"

            app:fabSize="auto"

            app:maxImageSize="56dp"

            app:backgroundTint="#99ccff"

            app:rippleColor="#33728dff"

            app:elevation="8dp"

            app:pressedTranslationZ="16dp"/>

            <!-- app:maxImageSize 设置图片大小 -

基于Android平台的记事本软件(Android Studio项目+报告+app文件)基于Android平台的记事本软件(Android Studio项目+报告+app文件)基于Android平台的记事本软件(Android Studio项目+报告+app文件)

从左到右分别为APP图标、登录界面logo、主界面悬浮按钮(添加记事按钮)

4.5其他细节

音乐文件存放在res/raw文件夹下,本软件的背景音乐是Promise.mp3,是寂静岭的一首刺激人积极向上,鼓舞人心的一首歌曲。

项目中的图片文件放在res/drawable文件下,想要跟换软件图标,还需要在AndroidManifest.xml中对android:icon="@drawable/applogo"语句进行更改。实际发现还需要将图标文件放入res/mipmap文件夹下,否则无法更变图标。

项目中的图片是从网页上下载的png图片,用户名和密码图标是Android Studio 项目自带的。

程序中尽量不要出现中文,所以可以将中文都放在 res/values文件夹下的strings.xml文件中。

<string name="login">登录</string> 

想要用登录这个词可以用getString(R.string. login)

strings.xml还能动态的插入内容

<string name="user_login_success">用户:<xliff:g example="tom" id="id2">%1$s</xliff:g>登录,欢迎光临!</string>

使用语句getString(R.string.name_already_exist, “YTJ”)就可以让表示用户YTJ登录,欢迎光临!

其中:

属性id可以随便命名

属性example表示举例说明,可以省略

%n$ms:代表输出的是字符串,n代表是第几个参数,设置m的值可以在输出之前放置空格

%n$md:代表输出的是整数,n代表是第几个参数,设置m的值可以在输出之前放置空格,也可以设为0m,在输出之前放置m0

%n$mf:代表输出的是浮点数,n代表是第几个参数,设置m的值可以控制小数位数,如m=2.2时,输出格式为00.00

  1. 总结与体会

通过本次大作业项目实践,将Android课程中的重点进行了运用,对ActivityActivity间通信、SQLite数据库操作、Service、和ListView等知识点有了更深入的了解,也让自己对这些要点的实践运用更加得心应手。

本次大作业有挺多数据库的相关操作,而我的主要卡壳点就是数据库的使用。在查询特定条件的数据时,花了些许时间。比如查询数据库中是否有用户名为user的用户时,可以使用

String sql="select * from " + TABLE_NAME + "where " + USER_NAME + "= '" + userName+ "'";

SQLiteDatabase.rawQuery(sql, null)  

或者

SQLiteDatabase .query(TABLE_NAME, null, USER_NAME+"="+userName, null, null, null, null);

或者

SQLiteDatabase.query(TABLE_NAME, null, USER_NAME + "=?", new String[] { user}, null, null, null);

刚开始使用了前两种,但是显示查不到数据,网上看了很多相关问题怎么都发现不了问题出在哪里,最后才找到第三种方式,成功查找到数据。

ListView的数据显示方式用的和书上有所不同,采用的网络上大部分人使用的BaseAdapter适配器,经过学习掌握,也算是一大收获。

本次大作业经过一周左右的完善,得到的记事本程序具备了基本的记事功能,也有保护隐私的功能,同时添加了背景音乐播放(详细功能和代码见程序包)。但是由于时间和个人能力的限制,该软件的功能很多考虑的不是很周到,功能也没有达到预期的目标。后续还会再继续增加该软件的功能,加上那种提醒、云端备份等。

源码、word报告、apk见资源: 基于Android平台的记事本软件(Android Studio项目+报告+app文件)https://download.csdn.net/download/MckennaGrace/85876972

参考文献

[1] 郭霖 第一行代码—Android (第2版) [M].人民邮电出版社 2016.11

[2] 黄晓先 基于Android的掌上校园交流系统设计与实现[J]. 开封教育学院学报,2016,03:280-281.

[4] 张生财 基于Android教务信息管理系统开发[J]. 科技创新与应用,2014,34:72.

[5] 杨云君 Android 的设计与实现[M]. 北京:机械工业出版社,2013:45-49.

[6] 关于BaseAdapter中getView方法的理解与实现_酷酷咔汽的博客-CSDN博客_getview作用.

 

 

到了这里,关于基于Android平台的记事本软件(Android Studio项目+报告+app文件)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于Android的记事本设计和模块开发

    有一万五千字论文,完美运行。 由于编程技术的迅速发展,各种记事本APP随处可见,在人们的日常生活中经常使用的到。于是各种记事本APP也跟着发展起来。本文在通过在Android Studio开发平台上开发一个简单的多功能语音输入记事本APP的过程,同时了解记事本APP的功能实现,

    2024年02月03日
    浏览(51)
  • 基于安卓系统(android)记事本APP管理系统设计与实现

    目录 摘要 I Abstract II 1 绪论 1.1 课题来源、目的和意义 1 1.2 国内外基本研究情况 1 2 需求分析 2.1 用户需求 4 2.2 功能需求 4 2.3 数据库选择 6 2.4 性能需求 6 3 概要设计 3.1 功能概要设计 7 3.2 数据库概要设计 13 4 详细设计 4.1 功能设计 15 4.2 数据库设计 30 5 系统功能实现 5.1 系统架

    2024年02月11日
    浏览(38)
  • Android记事本

    1、项目需求分析 1.1、记事功能需求分析: 1.1.1、显示记事 用户打开记事本可以看到之前所写的所有记事内容,进入主页后,软件应该从数据库中搜索出该用户所写的全部记事,并将所有的数据进行显示。 1.1.2、添加记事 设置添加按钮,点击添加按钮之后可以编辑记事的标题

    2024年02月03日
    浏览(52)
  • Android开发_记事本(1)

    TextView中有下述几个属性: id: 为TextView设置一个组件id,根据id,我们可以在Java代码中通过findViewById()的方法获取到该对象,然后进行相关属性的设置,又或者使用RelativeLayout时,参考组件用的也是id! layout_width: 组件的宽度,一般写: wrap_content 或者 match_parent(fill_parent) ,前

    2023年04月10日
    浏览(63)
  • Android——记事本功能业务(完整代码)

    目录 实现效果 一、搭建记事本页面布局activity_notepad.xml 二、搭建记事本界面Item布局notepad_item_layout.xml 三、封装记录信息实体类NotepadBean类 四、编写记事本界面列表适配器NotepadAdapter类 五、创建数据库 六、实现记事本界面的显示功能NotepadAdapter.java  七、搭建添加记录界面和

    2024年02月03日
    浏览(69)
  • Android 备忘录,记事本程序设计

    android备忘录实现,使用ObjectBox数据库框架进行数据存储,增删改查等操作。代码使用kotlin编写。 1、下面看看ObjectBox数据库封装 需要注意的是:    /**      * 你只有配置好之后, 点击 Make Model \\\'你的model名字\\\', 才会创建 MyObjectBox对象      * 对于MyObjectBox的包名, 目前我发现的

    2024年01月23日
    浏览(44)
  • 安卓手机上哪个支持语音输入的记事本软件好用?

    作为一个需要经常记录各种琐碎信息的人,我深知一款好用的记事本软件有多重要。因为在它的协助下,我可以对信息进行快捷记录、轻松查看。并且,随着科技的发展,有些记事本软件已经不再满足于简单的文字输入,而是新增了多个记事方式,比如说语音输入,让我们对

    2024年02月08日
    浏览(54)
  • WogRAT 恶意软件用记事本服务攻击 Windows 和 Linux 系统

    近期,ASEC 网络安全分析师发现恶意软件 WogRAT 正在通过记事本 Notepad 服务攻击 Windows 和 Linux 系统。 安全研究人员表示,威胁攻击者通过使用 WogRAT 恶意软件,借助记事本 Notepad 工具,来利用系统资源和用户权限,从而获取未经授权的访问权限并执行恶意代码。 研究人员发现

    2024年03月12日
    浏览(43)
  • 【Android 记事本,笔记本,可注册登录,增删改查(附源码)】

    简介 用Sqlite做数据库,用来存储账号以及笔记信息,实现了账号的注册以及登录功能,笔记方面实现了新增、删除、修改、搜索功能,列表展示笔记使用的是listView(懒得弄分割线,就使用listView的默认分割线了); 运行效果 代码讲解 我代码里使用了两个依赖,一个是工具

    2024年02月04日
    浏览(43)
  • Android:实现安卓小程序-记事本(备忘录)的开发,教你如何增加拿到BAT大厂offer几率

    public MyBaseAdapter(Context context, List data) { this.context = context; this.data = data; } @Override public Object getItem(int i) { return null; } @Override public long getItemId(int i) { return 0; } @Override public int getCount() { if(data==null) return 0; return data.size(); } } 接着在编写NoteAdapter类继承上类,初始化view, 将Note条目的

    2024年04月25日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包