摘要:
基于Android平台的家庭记账App旨在为用户提供方便快捷的家庭财务管理解决方案。该App主要包含账单、图表、支出记录、收入记录和个人中心等功能模块,旨在帮助用户轻松了解和掌握家庭财务情况,实现财务自由和理财规划。以下是该应用的主要功能模块和设计要点:
账单模块,图表模块:提供多种图表类型,如柱状图、折线图等,展示家庭财务数据的趋势和分布情况,用户可以记录家庭的支出和收入情况,包括金额、日期、类别等信息。支持自定义支出和收入的类别,以满足不同家庭的需求。个人中心,提供个人中心模块,用户可以管理个人信息、设置预算和目标等。支持数据备份和恢复功能,确保用户数据的安全性和可靠性。其他设计要点:采用简洁直观的用户界面设计,提高用户体验。
数据存储采用SQLite数据库存储本地数据,确保数据的高效管理和安全存储。
集成数据分析功能,为用户提供财务数据的统计分析和报表展示。支持多用户登录,适应不同家庭成员的需求,实现共享财务管理具。
关键词:Android应用开发,记账APP,家庭理财
Development and Design of Primary School Mathematics Game App Based on Android
Abstract:Based on the Android platform, the family accounting app aims to provide users with a convenient and efficient solution for managing household finances. The main modules of the app include bill management, charts, expense recording, income recording, and personal center. The goal is to help users easily understand and manage their household financial situation, achieving financial freedom and financial planning. Here are the main functional modules and design points of the app:
Bill Module, Chart Module: Provides various types of charts, such as bar charts, line charts, etc., to show the trend and distribution of household financial data. Users can record household expenses and income, including amount, date, category, etc. It supports customizing expense and income categories to meet the needs of different families.
Personal Center: Provides a personal center module where users can manage personal information, set budgets, and goals, etc. It supports data backup and recovery to ensure the security and reliability of user data.Other Design Points: Adopt a simple and intuitive user interface design to improve user experience. Data storage uses SQLite database for local data storage, ensuring efficient management and secure storage of data. Integrated data analysis functionality provides users with statistical analysis of financial data and report display. Supports multi-user login to adapt to the needs of different family members, realizing shared financial management.
Overall, the app aims to be an effective assistant for household financial management, helping users better manage their household finances and achieve financial freedom and financial goals.
Key words: Android Application Development, Expense Tracking App, Family Finance
目录
1 绪论
随着社会经济的发展和生活水平的提高,家庭理财管理变得越来越重要。有效地管理家庭的财务情况不仅可以帮助家庭成员合理安排支出、储蓄和投资,还能够提升生活质量和未来的经济安全。然而,许多家庭在理财方面面临着诸多挑战,如支出记录不清晰、预算管理困难等问题。针对这些问题,开发一款方便实用的家庭记账App具有重要意义。
本文旨在介绍基于Android平台的家庭记账App的开发与设计过程。首先,将分析家庭理财管理的现状和存在的问题,探讨开发家庭记账App的必要性。其次,将介绍家庭记账App的功能需求和设计思路,包括账单管理、图表展示、支出记录、收入记录和个人中心等模块。然后,将阐述开发过程中采用的技术和工具,如Android开发工具包(SDK)、Java编程语言、SQLite数据库等。最后,将讨论未来进一步完善和优化家庭记账App的可能性和挑战。
通过本文的阐述,读者将了解到如何利用Android平台开发一款实用的家庭记账App,帮助用户轻松管理家庭财务,实现财务自由和理财目标。同时,也将为相关领域的研究和实践提供一定的参考和借鉴价值。。
1.1 开发背景及意义
随着社会经济的不断发展和人们生活水平的提高,家庭财务管理成为越来越多家庭关注的重要问题。有效管理家庭财务不仅可以帮助家庭成员规划支出、储蓄和投资,还可以提升生活品质和未来的经济安全。然而,许多家庭在财务管理方面存在诸多挑战,如支出记录不清晰、预算管理困难等。
在这样的背景下,开发一款方便实用的家庭记账App具有重要的意义。首先,家庭记账App能够帮助用户轻松记录和管理家庭的收入和支出情况,实现财务透明化和可视化。其次,通过家庭记账App,用户可以更加直观地了解自己的消费习惯和财务状况,从而合理安排支出、制定预算,并实现财务目标。此外,家庭记账App还可以提供数据分析和报告功能,帮助用户进行财务规划和决策。
总的来说,开发一款基于Android平台的家庭记账App能够为用户提供便捷高效的家庭财务管理工具,提升生活质量,实现财务自由和理财目标。同时,也有助于推动智能手机应用在财务管理领域的应用和发展,促进科技与生活的融合。
目前,许多家庭在财务管理方面存在一些普遍的问题和挑战,主要包括以下几个方面:
支出记录不清晰: 很多家庭对于日常的支出情况没有清晰的记录,导致无法准确了解自己的消费习惯和财务状况。
预算管理困难: 缺乏有效的预算管理工具和方法,使得家庭难以制定合理的预算和控制支出,导致财务压力增加。缺乏财务规划: 许多家庭没有进行有效的财务规划,缺乏长远的财务目标和规划,导致财务状况不稳定。信息不对称: 家庭成员之间缺乏财务信息的共享和沟通,导致决策不够科学和合理。
理财意识薄弱: 部分家庭缺乏理财意识和知识,对于投资和理财方式不够了解,容易陷入不良的财务状态。
综上所述,当前许多家庭在财务管理方面面临诸多挑战,需要一款方便实用的工具来帮助他们记录、管理和规划家庭财务,提升财务管理效率和水平。因此,开发一款基于Android平台的家庭记账App具有重要的现实意义和市场需求。
2 系统需求分析
2.1 系统可行性分析
2.1.1 技术可行性
确保技术上能够实现设计的游戏系统,包括开发所需的软件、硬件资源是否具备,以及技术团队是否具备开发和维护该系统所需的技能和经验。
考虑选择合适的开发工具和平台,以确保游戏系统可以跨平台使用,满足不同用户设备的需求。
基于Android平台的家庭记账App的经济可行性可以从多个方面进行评估:
市场需求: 需要对目标市场进行调研,分析用户对于家庭财务管理的需求和偏好,评估市场规模和增长潜力。
竞争分析: 对现有的家庭财务管理App进行竞争分析,评估其优势和劣势,为产品定位和市场营销提供参考。
产品定位: 根据市场调研结果,确定产品的定位和特色功能,确保能够满足用户需求并具有竞争优势。
开发成本: 评估开发一款家庭记账App的成本,包括软件开发、设计、测试、推广等方面的费用,确保投入能够获得合理的回报。
盈利模式: 制定明确的盈利模式,如广告收入、付费订阅、增值服务等,确保能够实现盈利并持续发展。
营销策略: 制定有效的市场营销策略,包括推广渠道、用户获取、品牌建设等方面,提高产品知名度和用户使用率。
用户反馈和改进: 定期收集用户反馈,不断优化和改进产品,提升用户体验和满意度,保持竞争优势。
综合考虑以上因素,如果市场需求较大,产品定位准确,开发成本控制合理,盈利模式清晰,且能够有效营销推广,那么开发一款基于Android平台的家庭记账App具备较好的经济可行性。然而,在投入之前,务必进行全面的市场调研和商业计划评估,降低风险,提高成功的几率。
制定合理的项目开发计划和时间表,确保游戏系统可以按时完成并投入使用。
考虑项目开发过程中可能出现的延迟和风险因素,并制定相应的风险管理计划。
进行市场调研和用户需求分析,确保游戏系统的设计符合目标用户的喜好和需求,可以进行用户测试和反馈收集,及时调整和改进系统设计,提高用户体验和接受度。
通过综合考虑以上方面的因素,可以评估小学数学教育与游戏融合系统的可行性,并为项目的顺利实施提供指导和支持;
2.2 系统功能需求分析
下面是更详细的需求分析,包括账单、图表、记录支出、收入、我的功能:
1. 账单功能:
查看账单列表: 用户可以查看按日期排序的账单列表,显示每笔交易的类型、金额、日期等信息。
筛选账单: 用户可以按照日期范围、收支类型、分类等条件进行筛选和查找账单。
查看账单详情: 用户可以点击单个账单查看详细信息,包括交易类型、金额、日期、分类、备注等。
编辑和删除账单: 用户可以编辑和删除已经记录的账单信息,例如修改金额、分类、备注等。
2. 图表功能:
收支统计图表: 提供柱状图、饼图等图表展示用户的收入和支出情况,帮助用户直观了解财务状况。
分类分析图表: 展示各个分类的支出占比或收入占比,帮助用户了解自己的消费习惯。
趋势分析图表: 显示用户的收支趋势,如每月总收入和总支出的变化趋势,帮助用户制定合理的预算和规划。
3. 记录支出和收入功能:
添加支出和收入记录: 用户可以手动添加每笔支出和收入记录,包括金额、日期、分类、备注等信息。
快速记账: 提供快速记账功能,用户可以快速记录当天的支出和收入,节省时间。
默认分类和标签: 用户可以设置默认分类和标签,简化记账流程,减少重复输入。
4. 我的功能:
个人信息管理: 允许用户管理个人信息,如用户名、头像、登录密码等。
数据备份与恢复: 提供数据备份和恢复功能,用户可以定期备份数据到云端,以防数据丢失。
通知设置: 用户可以设置记账提醒和账单到期提醒的方式和时间,以确保不漏记账和避免逾期。
主题和界面设置: 提供多种主题和界面风格选择,用户可以根据个人喜好进行设置。
以上功能是基于家庭记账App的常见需求,可以根据实际情况进行调整和扩展。
2.3 业务需求分析
. 用户管理:
注册与登录: 用户可以通过注册账号并登录来使用记账App的功能。
个人信息管理: 用户可以管理个人信息,包括用户名、密码、邮箱等。
权限管理: 管理员可以设置不同用户的权限,例如普通用户只能查看自己的账单,而管理员可以查看所有用户的账单。
2. 记账功能:
记录支出和收入: 用户可以手动记录每笔支出和收入的详细信息,包括金额、日期、分类、备注等。
自动记账: 可以通过链接银行账户或者扫描收据等方式实现自动记账功能,减少用户手动输入的工作量。
3. 分类与标签:
支出分类: 提供常见的支出分类,如餐饮、交通、购物等,用户可以选择合适的分类来记录支出。
自定义分类: 允许用户添加自定义的支出分类,以满足个性化的记账需求。
标签管理: 用户可以给账单添加标签,方便后续的查询和分析。
4. 预算管理:
设定预算: 用户可以设定每月或每周的预算金额,系统会提醒用户预算执行情况。
预算警告: 当用户的支出超过预算金额时,系统会发送警告通知用户,帮助用户合理控制消费。
5. 数据分析与报表:
账单统计: 提供收入和支出的统计数据,如每月总收入、总支出、结余等。
图表展示: 以图表的形式展示数据,如柱状图、饼图等,帮助用户直观地了解自己的财务状况。
趋势分析: 分析用户的消费趋势,如消费习惯、支出变化趋势等。
6. 提醒与通知:
记账提醒: 可以设置每日、每周或每月的记账提醒,帮助用户养成良好的记账习惯。
账单到期提醒: 当账单到期时,系统会发送提醒通知用户及时支付,避免逾期罚款。
7. 数据安全与隐私保护:
数据加密: 采用加密算法对用户的账单数据进行加密存储,保障数据安全。
隐私保护: 严格遵守相关法律法规,保护用户的个人隐私信息,不会将用户数据用于其他商业用途。
8. 多平台兼容:
移动端兼容性: 支持Android和iOS平台,用户可以在不同设备上使用记账App。
Web端支持: 提供Web版的记账平台,用户可以通过浏览器访问并管理账单。
以上是家庭记账App的业务需求分析,通过满足这些需求,可以提供一个功能完善、用户体验良好的记账平台。
3系统的流程分析和基本框架
3.1 系统流程分析
3.1.1 注册功能流程
因为没有给未注册用户提供注册,用户需要通过系统注册才能使用该家庭记账APP,注册只需要账号信息,邮箱号,密码等,注册流程如图3.1所示。
3.1.2 登录及系统功能模块
系统首先检查用户提交的登录信息,用户登录成功后方可进行搜索,从数据检索所注册的账户及登入密码信息;流程如图3.2所示。
数学练习题系统的数据流图如下:
3.3 层数据流图
3.3 系统基本架构的设计
根据3.2节中功能模块的划分,得出系统总体结构设计架构如图3.5所示。
用户使用结构图等功能,如图3.6所示
4数据库模型设计
4.1 数据库需求分析
系统运行中用户的要求更具体、更充分,直接体现在数据的保存、更新频率以及在各种数据项条件下的查询,这一原则要求其数据库设计结构同时满足这些关键信息的输出和输入要求。添加程序关键数据信息,为每个过程的数据结构进行处理和分析,并为下一个具体功能的数据库结构设计打下坚实的基础。
用户办理:管理人员和用户都可以在本系统中举行用户的信息的办理和改正,包罗用户个人信息的增、删、改、查。
普通管理员办理:管理人员和普通管理员都可以在本系统中举行普通管理员的信息的办理和改正,包罗普通管理员个人信息的增、删、改、查。
4.2 数据库概念结构设计
根据以上分析得知本系统中的实体有:用户数据、因素倍数实体、选择题实体、特殊数实体、等实体。
每一个实体都有自己的数据项组成,具体如图4.1:
用户数据E-R图包含了id、用户数据、支出、收入、账单、导出、设置等数据项,如图4.2所示
账单数据E-R图包含了id、支出类型、收入类型、记账时间,备注、等数据项,如图4.3所示
记账E-R图包含了id、类型、支出、收入,记账时间、备注,额度
等数据项,如图4.3所示
4.4记账信息E-R图
4.3 数据库物理结构设
1)用户信息表的属性有:主键id、账号、密码。详情如表1用户信息表所示。
表1 User信息表 | |||||
列名 | 数据类型 | 长度 | 是否主键 | 允许Null值 | 说明 |
id | nvarchar | 20 | 是 | NOT NULL | 编号 |
User | nvarchar | 20 | 否 | NOTNULL | 账号 |
Pwd | nvarchar | 20 | 否 | NOTNULL | 密码 |
Address | 50 | 否 | NULL | 地址 | |
| char | 50 | 否 | Null | 邮箱 |
2)账单数据E-R图包含了id、支出类型、收入类型、记账时间,备注、等等。详情如表2分类信息表所示。
列名 | 类型 | 长度 | 能否为空 | 是否主键 | 备注 |
id | Int | 11 | 否 | 是 | 主键id |
name | Varchar | 50 | 否 | 否 | 名称 |
Flag | Int | 2 | 是 | 否 | 记账类型题 |
outType | Int | 5 | 是 | 否 | 支出类型确 |
inType | Int | 5 | 否 | 否 | 收入类型 |
RememberTime | Varchar | 50 | 否 | 否 | 记账时间 |
Ext | Varchar | 50 | 否 | 否 | 备注 |
3)选记账属性有:主键id、类型、支出、收入,记账时间、备注,额度
等数据项。详情如表3记账表所示。
列名 | 类型 | 长度 | 能否为空 | 是否主键 | 备注 |
id | Int | 11 | 否 | 是 | 主键id |
Remembe | Varchar | 50 | 是 | 否 | 题目 |
Number | Varchar | 50 | 是 | 否 | 额度 |
Flag | Varchar | 50 | 否 | 否 | 支出类型 |
inType | Varchar | 20 | 是 | 否 | 收入类型 |
Type | Int | 11 | 是 | 否 | 题型 |
remarks | Varchar | 50 | 是 | 否 | 备注 |
5 功能模块的设计与实现
系统功能设计是为了满足用户的需求,并提供便捷、高效的操作界面。在设计过程中,需要遵循一些原则,如实用性、清晰性、多样性和可扩展性等。
首先,系统功能设计应以实用性为出发点。系统功能应该能够解决用户的实际问题,提供有用的功能。在这个基础上,设计界面应该清晰明了,用户能够轻松地找到所需的功能,操作流程简单明确。其次,界面设计应该避免单调,为用户提供多样性的选择。通过使用不同的颜色、图标、布局等元素,可以使界面更加生动有趣,提高用户的使用体验。同时,系统设计还应符合用户的合理需求。在需求分析阶段,需要充分了解用户的需求,包括功能需求、操作习惯等。根据用户的需求,设计出合理的功能模块和界面布局,以便用户能够快速找到所需的功能,并能够轻松上手使用。
此外,系统设计应该具有可扩展性。系统的功能应该基于模块化设计,以便于后续的二次开发和功能扩展。当用户提出新的需求时,可以通过添加新的模块或功能来满足用户的需求,而不需要对整个系统进行大规模的修改。
最后,系统设计应保持整体性。虽然根据用户需求进行二次开发是可以的,但需要注意不破坏系统的整体结构和功能,以保证系统的稳定性和安全性。在进行二次开发时,应进行充分的测试和验证,确保新功能与原有功能的兼容性和一致性。
总之,系统功能设计应以用户需求为导向,注重实用性和清晰性,同时提供多样性的选择。设计应符合用户的合理需求,并具有可扩展性和整体性,以便系统能够不断升级和完善
5.1 注册模块的实现
系统为开发方便未给未注册用户预留注册功能,所以用户必须先注册才能进行学习等动作,所以本系统要提供便捷的用户注册功能,如图5.1为用户注册模块的实现界面。
图5-1,注册页面
部分代码:
protected int getLayoutId() {
return R.layout.activity_user_land;
}
@Override
protected void initWidget() {
super.initWidget();
mOwlView=findViewById(R.id.land_owl_view);
emailET=findViewById(R.id.login_et_email);
usernameET=findViewById(R.id.login_et_username);
usernameET1=findViewById(R.id.login_et_username1);
passwordET=findViewById(R.id.login_et_password);
rpasswordET=findViewById(R.id.login_et_rpassword);
signTV=findViewById(R.id.login_tv_sign);
forgetTV=findViewById(R.id.login_tv_forget);
loginBtn=findViewById(R.id.login_btn_login);
}
@Override
protected void initClick() {
super.initClick();
passwordET.setOnFocusChangeListener(this);
rpasswordET.setOnFocusChangeListener(this);
signTV.setOnClickListener(this);
forgetTV.setOnClickListener(this);
loginBtn.setOnClickListener(this);
}
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
mOwlView.open();
} else {
mOwlView.close();
}
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.login_btn_login: //button
if (isLogin) {
login(); //登陆
} else {
sign(); //注册
}
break;
case R.id.login_tv_sign: //sign
if (isLogin) {
//置换注册界面
signTV.setText("登录");
loginBtn.setText("注册");
rpasswordET.setVisibility(View.VISIBLE);
emailET.setVisibility(View.VISIBLE);
usernameET.setVisibility(View.GONE);
usernameET1.setVisibility(View.VISIBLE);
} else {
//置换登陆界面
signTV.setText("注册");
loginBtn.setText("登录");
usernameET.setVisibility(View.VISIBLE);
usernameET1.setVisibility(View.GONE);
rpasswordET.setVisibility(View.GONE);
emailET.setVisibility(View.GONE);
}
isLogin = !isLogin;
break;
case R.id.login_tv_forget: //忘记密码
showForgetPwDialog();
break;
default:
break;
}
}
5.2 账单信息
家庭账单,记入家庭所有的支出消费和收入,可以通过时间月份,日期查询账单信息,如图所示:
图5-2账单信息
核心代码:
protected void initClick() {
super.initClick();
incomeTv.setOnClickListener(this);
outcomeTv.setOnClickListener(this);
ItemTouchHelper helper = new ItemTouchHelper(new ItemTouchHelper.Callback() {
@Override
public int getMovementFlags(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) {
//首先回调的方法 返回int表示是否监听该方向
int dragFlags = ItemTouchHelper.UP | ItemTouchHelper.DOWN;//拖拽
int swipeFlags = ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT;//侧滑删除
return makeMovementFlags(dragFlags, swipeFlags);
}
@Override
public boolean onMove(RecyclerView recyclerView,
RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) {
//处理拖拽事件回调
//滑动事件
Collections.swap(mDatas, viewHolder.getAdapterPosition(), target.getAdapterPosition());
billSortAdapter.notifyItemMoved(viewHolder.getAdapterPosition(), target.getAdapterPosition());
//更新账单分类排序
saveBSorts();
return true;
}
@Override
public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
int index = viewHolder.getAdapterPosition();
final BSort item = mDatas.get(index);
//侧滑事件
new MaterialDialog.Builder(mContext)
.title("确定删除此分类")
.content("删除后该分类下的账单会继续保留")
.positiveText("确定")
.negativeText("取消")
.onPositive(((dialog, which) -> {
//删除账单分类
mPresenter.deleteBSortByID(mDatas.get(index).getId());
mDatas.remove(index);
billSortAdapter.notifyItemRemoved(viewHolder.getAdapterPosition());
//更新排序
saveBSorts();
}
))
//取消删除恢复
.onNegative(((dialog, which) -> {
// 刷新恢复消失的item
billSortAdapter.notifyItemChanged(index);
}))
.show();
}
@Override
public boolean isLongPressDragEnabled() {
//是否可拖拽
return true;
}
});
helper.attachToRecyclerView(mRecyclerView);
}
@Override
protected void processLogic() {
super.processLogic();
mPresenter.getBillNote();
}
5.3 图表统计
图表统计是对账单信息的一个统计,分析账单
图5-3统计分析
部分核心代码:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.shopping_activity_address);
TextView textView = (TextView) findViewById(R.id.titleView);
textView.setText("");
recycerView = (RecyclerView) findViewById(R.id.data_re);
all = (TextView) findViewById(R.id.all);
wait = (TextView) findViewById(R.id.wait);
pj = (TextView) findViewById(R.id.pj);
tk = (TextView) findViewById(R.id.tk);
back = (ImageView) findViewById(R.id.btn_back);
type= getIntent().getStringExtra("type");
back.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
finish();
}
});
rubbishBeanDao = new RubbishBeanDao();
addressBeanList= rubbishBeanDao.getContactAll(type);
adapter = new AddressListAdapter();
// if (Build.VERSION.SDK_INT >= 21) {
// View decorView = getWindow().getDecorView();
// int option = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
// | View.SYSTEM_UI_FLAG_LAYOUT_STABLE;
// decorView.setSystemUiVisibility(option);
// getWindow().setStatusBarColor(Color.argb(100,0,0,0));
// }
all.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
all.setTextSize(20f);
wait.setTextSize(16f);
pj.setTextSize(16f);
tk.setTextSize(16f);
recycerView.setVisibility(View.VISIBLE);
}
});
5.4 记账支出、收入
记账支出收入包含不同类别,方便统计,如图所示:
图5-4记账支出,收入
部分核心代码:
public void onClick(View view) {
switch (view.getId()) {
case R.id.back_btn:
finish();
break;
case R.id.tb_note_income://收入
isOutcome = false;
setTitleStatus();
break;
case R.id.tb_note_outcome://支出
isOutcome = true;
setTitleStatus();
break;
case R.id.tb_note_cash://现金
showPayinfoSelector();
break;
case R.id.tb_note_date://日期
showTimeSelector();
break;
case R.id.tb_note_remark://备注
showContentDialog();
break;
case R.id.tb_calc_num_done://确定
doCommit();
break;
case R.id.tb_calc_num_1:
calcMoney(1);
break;
case R.id.tb_calc_num_2:
calcMoney(2);
break;
case R.id.tb_calc_num_3:
calcMoney(3);
break;
case R.id.tb_calc_num_4:
calcMoney(4);
break;
case R.id.tb_calc_num_5:
calcMoney(5);
break;
case R.id.tb_calc_num_6:
calcMoney(6);
break;
case R.id.tb_calc_num_7:
calcMoney(7);
break;
case R.id.tb_calc_num_8:
calcMoney(8);
break;
case R.id.tb_calc_num_9:
calcMoney(9);
break;
case R.id.tb_calc_num_0:
calcMoney(0);
break;
case R.id.tb_calc_num_dot:
if (dotNum.equals(".00")) {
isDot = true;
dotNum = ".";
}
moneyTv.setText(num + dotNum);
break;
case R.id.tb_note_clear://清空
doClear();
break;
case R.id.tb_calc_num_del://删除
doDelete();
break;
}
}
/**
* 监听Activity返回结果
*
* @param requestCode
* @param resultCode
* @param intent
*/
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
if (resultCode == RESULT_OK) {
switch (requestCode) {
case 0:
mPresenter.getBillNote();
break;
}
}
}
5.5 发现
发现主要是查看一些信息资讯
图5-5,新闻资讯
核心代码:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_link_line_text);
ButterKnife.bind(this);
/**
* 24/5,10,6,7,1
* 195/6,26,13,16,9
* 42/9,14,12,3,7
* 126/4,5,27,13,21
* 45/4,15,5,6,2
*/
List<LinkDataBean> list = new ArrayList<LinkDataBean>();
LinkDataBean linkDataBean = new LinkDataBean();
linkDataBean.setCol(1);
linkDataBean.setContent("24");
linkDataBean.setRow(0);
linkDataBean.setType("0");
linkDataBean.setQ_num(0);
LinkDataBean linkDataBean0 = new LinkDataBean();
linkDataBean0.setCol(0);
linkDataBean0.setContent("1");
linkDataBean0.setRow(0);
linkDataBean0.setType("0");
linkDataBean0.setQ_num(0);
LinkDataBean linkDataBean1 = new LinkDataBean();
linkDataBean1.setCol(0);
linkDataBean1.setContent("5");
linkDataBean1.setRow(0);
linkDataBean1.setType("0");
linkDataBean1.setQ_num(1);
LinkDataBean linkDataBean2 = new LinkDataBean();
linkDataBean2.setCol(0);
linkDataBean2.setContent("10");
linkDataBean2.setRow(0);
linkDataBean2.setType("0");
linkDataBean2.setQ_num(2);
LinkDataBean linkDataBean3 = new LinkDataBean();
linkDataBean3.setCol(0);
linkDataBean3.setContent("6");
linkDataBean3.setRow(0);
linkDataBean3.setType("0");
linkDataBean3.setQ_num(0);
LinkDataBean linkDataBean4 = new LinkDataBean();
linkDataBean4.setCol(0);
linkDataBean4.setContent("7");
linkDataBean4.setRow(0);
linkDataBean4.setType("0");
linkDataBean4.setQ_num(4);
list.add(linkDataBean);
list.add(linkDataBean1);
list.add(linkDataBean0);
list.add(linkDataBean2);
list.add(linkDataBean3);
list.add(linkDataBean4);
linkLineView.setData(list);
linkLineView.setOnChoiceResultListener((correct, yourAnswer) -> {
// 结果
StringBuilder sb = new StringBuilder();
sb.append("正确与否:");
sb.append(correct);
sb.append("\n");
tvResult.setText(sb.toString());
});
next.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(LinkLineTextActivity.this,LinkLineTextActivity1.class));
}
});
5.6 我的信息
我的信息包含个人信息及设置,如图所示:
图5-6
参考文献
[1]陈飞,罗文广. 基于Android的智能交互APP设计[J]. 广西科技大学学报,2017,28(02):29-34+41.
[2]何远,张玉清,张光华. 基于黑盒遗传算法的Android驱动漏洞挖掘[J]. 计算机学报,2017,40(05):1031-1043.
[3]申晋祥,鲍美英. 基于Android的移动在线教育平台的设计与实现[J]. 软件,2016,37(03):30-33.
[4]曾露. MVP模式在Android中的应用研究[J]. 软件,2016,37(06):75-78.
[5]周,尹生强,王冬青,王英杰. 基于Eclipse和Android系统的App开发平台搭建研究[J]. 青岛大学学报(工程技术版),2016,31(03):49-53.
[6]路晔绵,李轶夫,应凌云,谷雅聪,苏璞睿,冯登国. Android应用第三方推送服务安全分析与安全增强[J]. 计算机研究与发展,2016,53(11):2431-2445.
[7]卿斯汉. Android安全的研究现状与展望[J]. 电信科学,2016,32(10):2-6+12-14.
[8]朱丽娜. 基于Android的日程管理系统的设计与实现[D].山东大学,2016.
[9]田志颖. 基于Android的移动学习软件设计与实现[D].曲阜师范大学,2016.
[10]葛臻. 基于Android平台的课堂笔记APP设计与实现[D].华中师范大学,2016.
[11]吕留记. 基于Android的即时通讯系统的研究与实现[D].电子科技大学,2016.