了Android中的List View组件[5],但根据列表的不同作用,采用了两种不同的机制来显示:
在日程安排中,针对其只是单纯的用来做显示,采用了扩展性最好的Simple Adapter,同时自己定义了每一列内容的布局文件,结合要显示数据的
由Hash Map构成的Array List,将布局文件上的组件映射到Hash Map上的各个元素上。而今日安排中,涉及到对单个条目的是否完成标记以及删除的设置,所以在这里重写了一个适配器MyItemAdapter继承Base Adapter,并在get—view()方法中手动映射数据。为了实现条目上控件与该条目的绑定,在get view()方法中添加了以下代码:
ListView lv=(ListView)(v.getParent().getParent());
//Gets the parent of this view. Note that the parent is a
ViewParem and not necessarily
//View.Retum Parent of this view.
fiml int position=lv.getPositiollForview(v);//find the
1d of the item
2) 手机丢失后的数据安全措施
每个用户必须使用自己的安全密码进行软件安全设置,安全密码在用户第一次使用该软件此功能时进行设置;手机安全设置包括的内容有:邮箱地址、邮箱密码、安全号码、IMSI号码。对于已设置手机丢失数据安全处理功能状态时的丢失手机,
会依据该手机是否换卡来对数据做安全操作[6]。本系统中对于手机丢失的数据安全处理流程如图2所示。
3)后台监听
本文通多线程服务实施的后天监听[7],运用了Android中的BroadcastReceiver。主要监听的对象有:
·接收短信的监听
主要针对为实现手机数据安全而实施的安全短信接收的监听。当接收到短信时,系统广播消息“android. provider. Telephony),.SMS — RECEIVED”,该消息将会被相关联的Receiver中的on Receiver函数接收,在该函数中判断是否为收到短信的消息,当是收到短信时,则会检测短信内容,
如果短信内容符合安全设置的要求,就会进行个人信息的备份与删除,同时返回操作成功的信息与当前的经纬度坐标。
·IMSI卡号的监听
每次开机时,系统会自动的进行IMSI卡号的检测,进一步确保了手机所处的安全状态。
·通话监听
通过比较当前手机SIM卡的IMSI号码与用户设置的原始IMSI号码是否一致,来实现是否自动挂断来电和去电。在这里,为实现自动挂断来电和去电,用到了Content Provider进行跨进程访问的AIDI。服务。
·网络监听
监听系统联网的状态主要是通过接收系统广播的“android.net. Conn CONNECTIⅥTY—CHANGE”消息,并通知在注册文件中与该消息相关联的Receiver,从而来得到网络联接状态的变化。对它的监听同样是为了确保手机当前的安全状态。
4)课程表功能
课程表功能是本系统中最具特色的设计。为了最大程度地适应大学生的课程表状态,本系统设计了如下功能:
(1)自定义课程表控件[8]
整个课程表采用绘制的方法,在paintRect中通过draw方法绘制课程表内容元素。每一个圆角矩形和其中对应的文字都是通过调用draw方法绘制的。针对横、竖屏,需要对课程表栏、星期栏、课节栏中文字显示进行居中、居左上处理,其中课程
表栏文字居中处理的代码如下:
Mx= (this.interDisHorizom-this.nlstrLength)/2;
my=(this.interDisVertical—this.mFbntHeight)/2;
this.centerX[a];xa+mx一8;
this.centerY[a];yb—my一10;
课程表栏文字居左上处理的代码如下:
My=(this.tinterDisVertical-this.mFontHeighr)/2;
This.centerX[a]=xa+8;
This.centerY[a]-yb-my-7;
在.xml布局立什中只要使用com.laichao.tab.paintRect即可调用自定义定课程表组件。
2)课程表独特的单双周处理
针对每一堂课,都拥有一个 property 属性,当所设置的课程只属于单周时,property 的值为0,只属于双周时为1,属于当双周共有时为2.每次设置好课程信息保存时,property 和其他信息都会被保存在数据库中。当在课程表中显示课程信息时,则会先获取系统当日期所属单双周状态,再根据该状态取数据库里的相应信息显示即可。
3)自定义课程表的局部Id处理
完整的课程表应包禽7*lO的77十表格.但在此处.为了提高界面的舒适度,课程表只犀示其中3*6的18个表格,菇余的课程可通过手势滑动来查看,在滑动过程中星期栏和课节次栏的数据是会随着显示的课程对应改变的。由于显示的课程总是局部的.为了能够准确获得其中每个表格的Id进而为数据库查询带来更大方便.针对不同的Id出现的规律(第一个id的变化范罔o~4,7~11.11~18… 35~39)定义了一个40*18的二维数组.以第一个id的值作为一维上的索引存放每种情况下的1d序列。这样.一旦界面E的表格发牛变化时,根据娈化规律.只要知道左上角第一个格子的Id便可访州其余17个。
例:左上角第一个格子的id为currentFirstID=16,则其对应的ID序列为……//0-15th
{//16th
16,17,18,
23,24,25,
30,31,32,
37,38,39,
44,45,46
51,52,53}
……//17th-39th
星期栏和课节栏均同以上设置。
(4)课程表中的手势处理<
上一篇:
基于ANDROID的小助手论文
下一篇:
试论APP广告在手机中的应用