_address: 事务地点;
该数据库设计初衷为保存整个学期的事务,这样实现整个学期的事务排布,包括数据的存储,事务的提醒和查询都比较方便。开始的两列包括日期,用户只需要通过选择周数和星期就可以生成日期。表中从第三列开始保存的为课表的id,通过该id可以在transaction表中查询出对应的事务内容。
4.2.2 Preference
Preference是一种轻量级的数据存储机制,它将一些简单数据类型的数据以键值对的形式存储在程序的Preference目录中。在Android平台上,可以通过一个Context对象调用getSharedPreferences(String name,int mode)方法传入Preferences文件名和打开模式,就可以获得一个Sharedpreferences的对象[4]。
4.3 程序中的主要类 4.3.1 ClassScheule类
[2]
该类为整个应用的主Activity, 显示事务表的主界面。其主要方法如下:
? ? ? ? ? ? ?
onCreate:Activity主要重写方法之一,实现程序初始化和UI展示; onResume:Activity重写方法之一,实现在唤醒Activity时刷新界面; onCreateOptionMenu:实现Option菜单的创建; onMenuItemSeleted:实现菜单项的点击事件响应; getDayClassRecord:从数据库中获取当天的事务信息; UpdateUI: 在数据发生改变时刷新UI; removeClass: 从数据库中删除事务;
界面设计方面通过RelativeLayout实现布局,使用了TextView,ImageButton事务列表通过ListView实现UI展示。该类通过继承BaseAdapter还实现了一个名为MyListAdapter的内部类,用来显示ListView中的数据并实现对ListView上ImageView控件点击的统一响应 [5]。
4.3.2 Addclass类和AddPlan类
AddClass类为实现添加事务界面的Activity,主要实现由用户选择和输入事务信息,并将所有的事务信息添加到数据库中。主要方法如下:
? ?
onCreate: 初始化UI控件;
SetDefaultData: 设置初始化时默认的数据;
13
? ?
SaveData: 将添加的事务保存进数据库中;
gettimeString: 将输入的事务信息转换成对应的时间字符串返回;
AddPlan类实现添加计划界面,并将添加的数据存入Preference中。主要方法如下:
? ? ?
onCreate: 实现初始化UI控件; onClick:
实现button点击事件的响应;
setPlan: 实现添加计划到preference中;
4.3.3 DBDataManager类
该类为自定义的重要的数据库处理类,用来管理数据库,对数据库的所有操作都封装在这个类中,实现数据封装。将数据操作和UI操作隔离开来。主要方法如下:
0-
AddTran: 给transaction表添加记录;
db.insert(transaction_TABLE, null, values);//insert方法插入一条数据
1-
deleteTran:删除一条class记录;
db.delete(transaction_TABLE, \id = \transactionid, null);//delete方法删除一条数据
2- 3- 4- 5-
initTerm:给Term表添加初始数据
addTransactionToterm:将添加的事务信息正确添加进term表中 deleteTransactionfromterm:从term表中删除一次添加的class数据 getdayTransactionRecord:
获得一天事务记录
4.3.4 AlarmService类
该类实现定时服务,service监听系统时间变化,当系统时间和设置的时间相等时,弹出提示信息,并播放音乐,实现提醒功能。主要方法如下:
onReceive:监听系统时间变化,实现弹出提示信息和音乐播放,以下代码用来监听系统时间[8]:
Calendar mCalendar = Calendar.getInstance(Locale.CHINA); String dateString = mCalendar.get(Calendar.YEAR) + \
+ (mCalendar.get(Calendar.MONTH) + 1) + \+ mCalendar.get(Calendar.DAY_OF_MONTH) + \+ mCalendar.get(Calendar.HOUR_OF_DAY) + \+ mCalendar.get(Calendar.MINUTE);
14
以下代码得到preference,如果没有对应记录则planstring会等于null,如果不等于null就执行提醒。
SharedPreferences preference =
context.getSharedPreferences(\ClassSchedule\Context.MODE_PRIVATE); String planString = preference.getString(dateString, null);
preference中存计划是就是以提醒时间为键值,当得到当前时间等于键值时就执行提醒,启动MusicService这个服务
player = MediaPlayer.create(this, R.raw.shangkele);//创建播放器 player.start();//开始播放
4. 系统的实现
在完成系统设计以后,即可在Android虚拟机中运行程序,运行效果如下: 软件设置界面,该界面为用户第一次进入程序所显示的界面,往后的使用中,用户可以通过“Menu”→“设置”的操作步骤来进入该界面。在此界面,用户可以设置第一周开始时间,每学期的周数以及事务数量和持续时间,如图4所示:
15
图4 软件设置界面
设置事务的类型,添加事务,添加感想,以下界面由点击软件设置界面中的“类型后”后弹出,如图5所示:
16
图5 设置事务类型
程序主界面,该界面是用户非第一次进入程序所显示的界面,此界面主要显示用户所添加的事务的信息,可以通过删除按钮来实现删除事务的操作,如图6所示:
图6 程序主界面 添加事务界面,该界面通过“Menu”→“添加事务”操作进入,在该界面用户可以根据自己的需求来添加事务,如图7所示:
图7 添加事务
同时也可以在首页点击添加事务,如图8所示:
17
百度搜索“70edu”或“70教育网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,70教育网,提供经典综合文库基于Android平台的学生个人事务管理系统1(4)在线全文阅读。
相关推荐: