博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基于Android平台的开源项目PlanBetter设计篇之一 核心功能
阅读量:6239 次
发布时间:2019-06-22

本文共 4605 字,大约阅读时间需要 15 分钟。

      之前介绍过自己大学时期做过的一些项目,里面有一个基于Android平台的项目叫PlanBetter,项目的详细介绍请参见,里面附有本项目的一些截图。如果您对本项目的设计实现感兴趣,欢迎您继续看下去!

      这个项目是一年前做的,时间隔得比较久,而且之前也没做过什么总结,所以对于项目的具体设计实现可能记得不是很清楚,但是我会尝试着将它完整地呈现给大家。

      这个项目的核心功能是计划这一块,通过三个连续的视图将昨天任务完成情况、今天任务完成情况以及未来任务提醒表现出来。用户可以通过滑动屏幕在这三个连续的视图之间进行切换,透过事先的规划作为一种提醒和指引,督促用户在规定的时间内把事情做好。可以给大家简单看一下计划这一块的截图:

 

                                                 

                                                                       均为昨天视图,左图为没有活动的显示效果,右图为有活动的显示效果

 

                                                 

                                                                       均为今天视图,左图为没有活动的显示效果,右图为有活动的显示效果

 

                                                                              

                                                                                   上图为未来视图,这里只截了有活动的效果图

      截图演示到此为止。由于这里是设计篇,所以我着重介绍这里的设计思路。

      对于一个活动,比较重要的三点就是时间、地点和活动内容。当然地点可以不用确定,有的时候只用了解时间和活动内容即可。

 

关于昨天

     对于昨天,我们往往关心的是昨天都做了哪些事情,有哪些事情没有完成,哪些事情是比较重要的。当然你可以看完之后将其删除,保护您的隐私。

      所以你们看到的昨天视图,即是将这些信息提供给用户。之前的设计图是在纸上画的,就不提供给大家了。画图说明如下图所示:

                         

昨天视图的布局代码如下所示,其中yesterday_task_layout.xml为整个布局的文件,yesterday_task_item.xml为单个活动的布局,因为活动列表是用ListView来实现的。

 

yesterday_task_layout.xml
1 
2
6
10
12
17
21 22
23
29
30

 

yesterday_task_item.xml
1 
2
9 10
11
13
15
22
25
28
29
30
32
38 39
40
41 42
44
46
49
50
51

 

关于今天

     今天对比昨天而言,需求又不一样。随着新的空白的一天的开始,你可以随时添加当天需要完成的任务,除了活动内容和时间地点以外,你还可以指定活动周期(即该活动持续多少天)、活动优先级(即活动重要性)以及是否设置活动提醒(即闹钟提醒)。如果当天存在活动未完成,且设置了活动提醒,状态栏会显示一个小闹钟的图标,可以参见上面今天视图右边那张图片。

      同样,活动的完成情况可以根据颜色的明暗来区分,颜色为暗色的表示活动已完成。用户可以通过单击某个活动来修改活动的是否完成情况,也可以长按该活动来对它进行进一步的操作,包括“编辑活动”、“删除活动”和“推迟活动”。

                 

今天视图的布局代码如下所示,同样活动列表也是用ListView来实现。

 

today_task_layout.xml
1 
2
6
10
12
17
21
24
28
29
30
36
37

 

today_task_item.xml
1 
2
6 7
8
10
13
18
22
26
28
29
30
33
38
41
42
43 44
46
48
51
52
53

 

关于未来

      这里未来相对来说比较容易。关于未来,只要起到提醒的作用就可以了。只要明白活动内容日期,我们就很容易掌握将要到来的事情。你也可以指定具体的时间点,在未来的某时刻进行活动提醒。这里通过倒计时的方式显示,更容易让用户接受,一目了然。

      如下图所示,对比昨天和今天视图,比较大的一个区别在于,多了一个活动详细。你可以通过点击某个活动,活动详细里就可以把详细信息显示出来,在这里你可以查看具体的日期。另外,你可以通过长按某个活动来对活动进行编辑和删除操作。

 

                                  

 

tomorrow_task_layout.xml
1 
2
6
8
12
17
22
28
29
31
38
44
51
56
57
64
65
66

 

tomorrow_task_item.xml
1 
2
9 10
11
13 14
22 23
29 30
35
36

 

数据存储

      谈完了数据的显示,再说说数据的存储。有关活动的数据都是存储在数据库当中的,相信做过Android开发的都不陌生,我也不班门弄斧了。

      下面是建数据表的SQL语句,写在DatabaseHelper类中:

DatabaseHelper.java
1 //创建任务表 2     private static String CREATE_TASK_TABLE_SQL = "CREATE TABLE IF NOT EXISTS " + TaskBean.TABLE_NAME + "(" 3         + TaskBean.ID + " INTEGER PRIMARY KEY," 4         + TaskBean.DATETIME + " TEXT," 5         + TaskBean.TASK_NAME + " TEXT," 6         + TaskBean.POSITION_NAME + " TEXT," 7         + TaskBean.TIME_ALERT_FLAG + " INTEGER," 8         + TaskBean.PRIORITY + " INTEGER," 9         + TaskBean.IF_COMPLETE + " INTEGER,"10         + TaskBean.REPEAT_DAYS + " INTEGER,"11         + TaskBean.IF_FUTURE+ " INTEGER,"12         + TaskBean.PARENT +" INTEGER)";

      见名思义,通过上面的代码可以知道这个表中各个字段的含义,但我还是详细说一下。下面是task表的详细属性说明和表图:

                                                                           

 

Name

Comment

Default

DataType

     P

     F

     M

task_id

任务编号

 

INTEGER

 

√ 

task_datetime

任务时间

 

TEXT

 

 

 

task_name

任务内容

 

TEXT

 

 

 

position_name

任务地点

 

TEXT

 

 

 

time_alert

是否提醒

 

INTEGER

 

 

 

task_priority

任务优先级

 

INTEGER

 

 

 

if_complete

是否完成

 

INTEGER

     

repeat_days

重复天数

 

INTEGER

     

parent

父亲编号

 

INTEGER

     

 

      可能大家会比较好奇为什么会有一个parent字段。因为在今天视图中创建活动时可以设置活动周期,即重复天数。当用户创建了一个活动周期大于1天的活动时,后台数据库需要创建相同数量的记录,此时parent父亲编号同为当天活动的编号。这样在进行后续的修改和删除时根据repeat_days和parent这两个字段就可以有效地进行操作。

 

待续

 

 

转载于:https://www.cnblogs.com/blacksword/archive/2012/10/17/2728138.html

你可能感兴趣的文章
2017ICPC北京 J:Pangu and Stones
查看>>
Pandas 数据清洗保存
查看>>
SpringBoot + nodeJS + zookeeper 搭建微服务示例
查看>>
《互联网时代》第二集·浪潮
查看>>
8.10 exec函数
查看>>
Shell命令-文件及内容处理之sort、uniq
查看>>
Android 之文件夹排序
查看>>
Java Assert 用法简介
查看>>
关于redo size(一)
查看>>
We Know What @You #Tag: Does the Dual Role Affect Hashtag Adoption-20160520
查看>>
(转)Eclipse新增安卓虚拟机
查看>>
SpringMvc访问Controller去掉do
查看>>
PHPnow升级PHP 5.4与Mysql 5.5
查看>>
正则表达式验证邮箱格式
查看>>
如何围绕企业战略,建设BI驾驶舱?
查看>>
java多线程stop,suspend使用代码实际例子
查看>>
中小型研发团队架构实践三:微服务架构(MSA)
查看>>
Windows动态库学习心得
查看>>
在VMware虚拟机上安装Ubuntu 10.04
查看>>
LDA主题模型简介
查看>>