1、河北农业大学本科毕业论文题 目: 基于Android系统的课程表的设计与实现 摘要随着无线移动设备的发展,手机也日益普及,Android系统的推出使手机的发展进入到了一个新的领域。世界上一些知名的移动设备生产厂商对于Android智能机的开发热情也日益提高,Android系统的使用人群正在急速提升,Android应用程序的多样化对人们快速获取资讯以及方便人们的生活起着不可忽视的作用,近年来Android得到了社会更多的认同和应用,本文主要概述了Android系统的体系结构,Android应用程序的开发环境和用JAVA语言开发基于Android系统的课程管理系统中的一些技术实现方法,这些技术包括
2、:基于Android系统的电子课程表的用户界面设计,Service的使用,SQLite数据库的建立和存储。在系统的设计与实现中,确定系统的开发思想以及开发环境。最后给出了系统中模块的详细设计与实现,并对系统模块涉及到的关键源代码进行了详细的分析。经过调试运行后表明,系统可以满足用户的各项要求。关键词:Android,JAVA,SQLite,课程管理 AbstractWith the development of wireless mobile devices, mobile phones have been increasingly popular, and the introduction
3、of Android system has promoted the development of phones into a new area. Some of the worlds leading mobile device manufacturers have also shown great enthusiasm for the exploitation of Android intelligent machines. Beside, diversified Android application programs play a significant role in peoples
4、quick access to information and facilitation of peoples life. Therefore, customers of this system are rapidly increasing In recent years. This paper outlines the architecture of Android system, its development environment and some technical implementation of Class management system on android system
5、 based on JAVA language. These technologies include the design of user interface of Class management system on android system, system calls of API, and establishment and storage of SQLite database. During the design and realization of the system, making sure the development thought of the system, at
6、 last show the design details with realize finally an a key for of detailed design with realization, and analyzed the program which relate to the system module The author will elaborate each technological point specifically in this paper.Keywords: Android,JAVA,SQLite,Class manage 目录1绪论11.1 项目背景及意义11
7、.2 国内外现状11.3论文组织结构22相关技术分析32.1 Android概述32.2 Android系统的四大组件32.3 Android中的相关技术介绍及分析52.3.1 Android系统架构研究52.3.2 Android架构分析62.3.3 Android应用程序架构62.3.4 Android运行时组件72.3.5 Android应用的构成和工作机制72.4 Eclipse简介72.5 XML简介83需求分析93.1 系统需求分析93.2 系统流程93.3 功能模块划分93.3.1课程添加模块94系统设计104.1 概要分析104.2 数据库分析104.2.1 SQLite数据表
8、设计104.3 程序中的主要类114.3.1 GalleryTabActivity类和ClassListActivity类114.3.2 ClassAddActivity类和SettingActivity类124.3.3 SQLiteHelper类和SQLClassTime类125系统实现135.1程序首页面135.2 课程设置实现135.3 课程星期,地点实现145.4更换背景165.5设置开学日期19结论21参考文献22致谢23附录24搭建Android开发环境241 绪论1.1 项目背景及意义对于课程管理,相信大家都不会感到陌生,课程管理即是帮助老师和学生管理课程,最早以纸质的方式存在,
9、随着科技的发展,电子课程管理也出现在了手机上,更方便的为人们管理课程,记录课程的相关信息。在中国,手机已经成为人们日常生活必不可少的一部分,智能手机在高校人群中逐渐得到了普及,Android手机凭借其优秀的系统性能以及良好的用户体验迅速得到了大学学生的青睐。在高校中,上课并不像高中时期有固定的教室和固定的时间,大学课程种类繁多,并且上课地点和时间都不固定,一周内极少会出现重复课程,所以要将课程表完整的记忆下来是一项很艰难的事情,每次上课时总有许多同学在上课的路上才想到不知道在哪个教室上课,于是不得不每次拿出手机打电话花两毛钱问同学,或者一些同学一直装个纸质的课程表在衣袋里,极不方便。鉴于And
10、roid手机在大学中的普及率很高,于是我就想到了创作一个Android版的课程管理程序。将课程表放进手机里,只需大家需要按照具体时间、课程名称等将自己的课程信息录入到系统中,为一周的每一天添加下课程安排,就可以一劳永逸。基于这些问题,有必要设计一款具有课程管理程序,配合上可以让用户自定义上课时间以及地点的功能,从而避免遗忘上课的事情出现。1.2 国内外现状移动互联网发展的时代产物,学生下载课程表软件后安装输入学校信息管理系统帐号即可自动录入个人课程表,方便快捷。目前国内唯一支持自动录入课程表的手机软件-超级课程表。超级课程表是一款由几个90后以课程表为基础而展开的校园实用软件,面向高校大学生。
11、其功能不仅能够帮助大学生查阅各个大学的课程信息(包括课程时间、授课地点、任课老师),还可以将自己的课程安排发布到应用中,与好友分享。除此之外,课程相同或者对此感兴趣的学生,可以在应用中讨论课程内容,分享上课的笔记,共享文件资源。甚至可以认识到同一节课任意课室范围内的同学,扩展交际圈,并可以向同班同学发送私信,方便同学间即时、便捷的联系。还可以查看到全校课程,并添加入为个人旁听课程,制订属于自己的学霸计划!绑定第三方应用并分享到给第三方应用的粉丝。与其它课程表应用不同的是,“超级课程表”不需要用户手动添加课程,用户输入学校信息管理系统账号后,系统自动添加,方便,快捷。“超级课程表”具有以下几点功
12、能;(1)对接高校教务系统,自动录入课表到手机;(2)快速记录课堂笔记、课后作业,提高学习效率;(3)精准推荐千万节旁听课程,校内跨院系蹭课;(4)软件内学习外语,充实你的课余生活;(5)精彩“下课聊”,百万大学生在线交流社区;(6)同学间互传纸条,在线交流学习。1.3论文组织结构本文主要介绍了Android系统中的相关技术以及Android系统的架构,以及研究,分析,和实现基于Android电子课程表系统,包括以下几个部分:第一章简要介绍了Android手机平台的背景及国内外发展情况。第二章主要写了本程序的可行性及需求分析。第三章详述了电子课程表系统流程设计。以及对功能模块的划分。第四章主要
13、叙述了对系统设计以及对数据库的分析。第五章主要写了程序首页以及课程设置的实现。2 相关技术分析2.1 Android概述Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备。Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成。Android一词最早出现于法国作家利尔亚当(Auguste Villiers de lIsle-Adam)在1886年发表的科幻小说未来夏娃(Lve future)中。他将外表像人的机器起名为Android。And
14、roid的Logo是由Ascender公司设计的,诞生于2010年,其设计灵感源于男女厕所门上的图形符号,于是布洛克绘制了一个简单的机器人,它的躯干就像锡罐的形状,头上还有两根天线,Android小机器人便诞生了。其中的文字使用了Ascender公司专门制作的称之为“Droid ” 的字体。Android是一个全身绿色的机器人,绿色也是Android的标志。颜色采用了PMS 376C和RGB中十六进制的#A4C639来绘制,这是Android操作系统的品牌象徵。有时候,它们还会使用纯文字的Logo。2012年7月美国科技博客网站BusinessInsider评选出二十一世纪十款最重要电子产品,
15、Android操作系统和iPhone等榜上有名。与其他手机操作系统相比,Android有4个无可比拟的优点:(1)开放性:Android系统同时包含了底层操作系统以及移动电话所需的全部软件,不存在专有权障碍,开发平台允许任何移动终端厂商加入到Android联盟中来,并允许不同厂商可以根据自己的需求对平台进行定制和扩展,无需任何授权许可费用;(2)所有应用程序平等:Android系统中,系统核心应用和第三方应用都是完全平等的,用户可以将手机中的任意应用程序替换成所需的其他应用程序;(3)应用程序间无界限:开发人员可以吧Web上的数据与本地的日历、联系人、位置信息结合起来,应用程序还可声明它们可供
16、其他程序使用;(4)快速方便的应用程序开发:Android平台为开发人员提供了大量的实用库及工具,可以让开发人员快速的创建自己的应用。2.2 Android系统的四大组件Android四大基本组件分别是Activity,Service服务,Content Provider内容提供者,BroadcastReceiver广播接收器。(1)Activity应用程序中,一个Activity通常就是一个单独的屏幕,它上面可以显示一些控件也可以监听并处理用户的事件做出响应。Activity之间通过Intent进行通信。在Intent 的描述结构中,有两个最重要的部分:动作和动作对应的数据。典型的动作类型有
17、:MAIN(activity的门户)、VIEW、PICK、EDIT 等。而动作对应的数据则以URI 的形式进行表示。例如:要查看一个人的联系方式,你需要创建一个动作类型为VIEW 的intent,以及一个表示这个人的URI。与之有关系的一个类叫IntentFilter。相对于intent 是一个有效的做某事的请求,一个intentfilter 则用于描述一个activity(或者IntentReceiver)能够操作哪些intent。一个activity 如果要显示一个人的联系方式时,需要声明一个IntentFilter,这个IntentFilter 要知道怎么去处理VIEW 动作和表示一个人
18、的URI。IntentFilter 需要在AndroidManifest.xml 中定义。通过解析各种intent,从一个屏幕导航到另一个屏幕是很简单的。当向前导航时,activity 将会调用startActivity(Intent myIntent)方法。然后,系统会在所有安装的应用程序中定义的IntentFilter 中查找,找到最匹配myIntent 的Intent 对应的activity。新的activity 接收到myIntent 的通知后,开始运行。当startActivity 方法被调用将触发解析myIntent 的动作,这个机制提供了两个关键好处:A、Activities 能
19、够重复利用从其它组件中以Intent 的形式产生的一个请求;B、Activities 可以在任何时候被一个具有相同IntentFilter 的新的Activity 取代。(2)Service一个Service 是一段长生命周期的,没有用户界面的程序,可以用来开发如监控类程序。比较好的一个例子就是一个正在从播放列表中播放歌曲的媒体播放器。在一个媒体播放器的应用中,应该会有多个activity,让使用者可以选择歌曲并播放歌曲。然而,音乐重放这个功能并没有对应的activity,因为使用者当然会认为在导航到其它屏幕时音乐应该还在播放的。在这个例子中,媒体播放器这个activity 会使用Contex
20、t.startService()来启动一个service,从而可以在后台保持音乐的播放。同时,系统也将保持这个service 一直执行,直到这个service 运行结束。另外,我们还可以通过使用Context.bindService()方法,连接到一个service 上(如果这个service 还没有运行将启动它)。当连接到一个service 之后,我们还可以service 提供的接口与它进行通讯。拿媒体播放器这个例子来说,我们还可以进行暂停、重播等操作。Service使用步骤如下:1.继承service类2.AndroidManifast.xml配置清单文件中节点里对服务进行配置3.Cont
21、ent Provider Android平台提供了Content Provider使一个应用程序的指定数据集提供给其他应用程序。这些数据可以存储在文件系统中、在一个SQLite数据库、或以任何其他合理的方式,其他应用可以通过ContentResolver类(见ContentProviderAccessApp例子)从该内容提供者中获取或存入数据.(相当于在应用外包了一层壳),只有需要在多个应用程序间共享数据是才需要内容提供者。例如,通讯录数据被多个应用程序使用,且必须存储在一个内容提供者中,它的好处:统一数据访问方式。 4.BroadcastReceive你的应用可以使用它对外部事件进行过滤只对
22、感兴趣的外部事件(如当电话呼入时,或者数据网络可用时)进行接收并做出响应。广播接收器没有用户界面。然而,它们可以启动一个activity或serice 来响应它们收到的信息,或者用NotificationManager 来通知用户。通知可以用很多种方式来吸引用户的注意力闪动背灯、震动、播放声音等。一般来说是在状态栏上放一个持久的图标,用户可以打开它并获取消息。广播类型:普通广播,通过Context.sendBroadcast(Intent myIntent)发送的有序广播,通过Context.sendOrderedBroadcast(intent, receiverPermission)发送的
23、2.3 Android中的相关技术介绍及分析2.3.1 Android系统架构研究Android是一个包含操作系统、中介架构层及应用程序所产生出来的软件堆栈架构。由下而上,其核心为嵌入式Linux2.6作业系统,向上搭配Google为Android开发的类库及Android运行时,再配合应用程序架构,来开发各种不同的应用程序。下面介绍几个本系统开发所用到的功能特征。(1)应用程序架构:在应用程序架构内已经具备多种不同的基础组件,在开发应用程序时,就可以直接调用这些组件来使用,可以节省开发应用程序的心力及时间。(2)Dalvik虚拟机器:在Android平台上所使用Java虚拟机,不是Sim公司
24、的标准Java虚拟机,而是使用Google自主开发的代号为Dalvik的虚拟机,它在保证API方面的兼容的同时,针对移动手机进行了大幅优化,占用资源更小,运行效率更高。(3)SQLite数据库:SQLite提供结构化的数据存取。SQLite是一款轻型的数据库,它的设计目标是嵌入式的,目前已经在很多嵌入式产品中使用了它,它占用的资源非常低。它能够支持Windows/Linux/U nix等主流的操作系统,同时能够跟很多程序语言相结合,比如PHP,Java等,还有ODBC接口,同样比起Mysql,PostgreSQL来讲,它的处理速度比它们都快。它无需安装和管理配置,它是一个储存在单一磁盘文件中的
25、完整数据库,体积小只有250KB但支持数据库大小至2TB。它虽然很小巧,但是支持的SQL语句毫不逊色于其它开源数据库。同时它还支持事务功能和并发处理等等。SQLite也是一套开放性的关联式资料库,其特点在于轻量性方面的设计结构,更适合在手机上使用。2.3.2 Android架构分析Android的架构包括5个部分:应用程序、应用程序框架、程序库、Android运行库及Linux内核。架构如图2-1所示: 图2-1 Android架构的五个部分2.3.3 Android应用程序架构在Android SDK中,定义了让开发者使用与核心应用程序相同API的权限应用程序框架是为了要简化组件的重新利用而
26、设计的,应用程序可以发布功能为其它应用程序所使用。但是,这要受限于应用程序架构的安全机制,使用者以用同样的机制来新增、置换组件。目前所有的应用程序是由服务及系统来组成。Android应用构成和工作流程图如图2-2所示:图2-2 Android应用构成和工作流程图2.3.4 Android运行时组件虽然Android是用Java语言来开发、撰写应用程序,但却不使用Java运行时组件来执行Java程序,而是使用了由Google自行研发的Android运行时组件来执行程序。Android运行时组件包括两个重要的部分,一个是核心类库,另一个是Dalvik虚拟机。2.3.5 Android应用的构成和工
27、作机制对于一个Android应用程序来说,是由Activity、IntentReceiver、Service、Content Provider四部分组成,但并不是每一个Android应用程序都必须由这四部分组成。在应用程序中使用时,需要在配置文件AndroidManifest.xml中进行配置。这个配置文件是每个Android应用程序所必需的,用于定义应用程序的组件、组件的功能以及必要条件等。2.4 Eclipse简介Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的
28、插件集,包括Java开发工具(Java Development Kit,JDK)。虽然大多数用户很乐于将 Eclipse 当作 Java 集成开发环境(IDE)来使用,但 Eclipse 的目标却不仅限于此。Eclipse 还包括插件开发环境(Plug-in Development Environment,PDE),这个组件主要针对希望扩展 Eclipse 的软件开发人员,因为它允许他们构建与Eclipse 环境无缝集成的工具。由于 Eclipse 中的每样东西都是插件,对于给 Eclipse 提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。这种平等
29、和一致性并不仅限于 Java 开发工具。尽管 Eclipse 是使用 Java 语言开发的,但它的用途并不限于 Java 语言;例如,支持诸如 C/C+ 和 COBOL 等编程语言的插件已经可用,或预计将会推出。Eclipse 框架还可用来作为与软件开发无关的其他应用程序类型的基础,比如内容管理系统。2.5 XML简介XML是指可扩展标记语言(EXtensible Makeup Language),是用来传输和存储数据的工具。XML数据是一种纯文本格式存储的数据,它提供了一种独立软件和硬件的数据存储方法。XML文档必须包含根元素,该元素是所有其它根元素的父元素。XML 文档中的元素形成了一棵文
30、档树。这棵树从根部开始,并扩展到树的最底端。所有元素均可拥有子元素。父、子以及同胞等术语用于描述元素之间的关系。父元素拥有子元素。相同层级上的子元素成为同胞(兄弟或姐妹)。所有元素均可拥有文本内容和属性。XML是大小写敏感的语言,所有元素都必须正确嵌套,必须有关闭标签,元素的属性值必须加引号。XML的命名规则:元素名称可以使用任何字母或符号(除 &),没有保留字;元素名称不能以数字或标点和XMLxmlXml字符开始,也不能包含空格3 需求分析课程管理包括:运行首页课程信息的显示。这是面向用户的一个Activity,在此用户可以方便地查看本周的课程情况。除此之外,是课程信息管理。用户可以添加,删
31、除,修改课程信息,设置上课时间。3.1 系统需求分析手机电子课程管理在手机应用程序中并不常见,一般在手机上较为常见的日程提醒程序无法实现自由设置课程信息。经过对周边同学的调查研究,普遍认为这款软件方便实用,其主要功能如下:课程的添加、删除和修改;每节课程上课时间段的设置;每周课程预览;课程具体信息预览;3.2 系统流程根据课程管理的特点,将课程管理分为首页的课程信息预览,作业内容预览,作业的增加与修改,课程添加,上课时间设置。可以通过点击MENU按钮添加课程、设置课程时间、查看本程序的关于信息、退出程序。添加完课程信息,设置好上课时间之后,在进入程序的第一个Activity将当前一周的课程信息
32、显示出来,点击课程信息,可以进行添加、修改、删除。3.3 功能模块划分根据程序的设计,将程序分成3个模块。课程添加、课程设置的添加和修改。每个模块都有对应的功能及相关工作。3.3.1课程添加模块该模块实现了如下几个功能:1、添加课程信息;2、添加上课地点;3、设定课程在星期几上课;4、设定课程是当天的第几节课。该模块实现课程的添加工作,可以将课程的名称、上课地点、上课时间、课程节数添加到数据库中。4 系统设计4.1 概要分析从程序流程来分,用户在第一次进入程序时要进入设置界面,设置一些基本的配置信息以方便数据库管理,然后进入添加课程界面,进行添加课程操作。添加课程除了UI展示以外其他的方式都是
33、在操作数据库,在程序中使用SQLite以实现程序的各种功能。在程序主界面使用用Listview控件展示记录,从数据表中按当天是星期几读取出当天的记录,从而将课程的信息显示在主页面上,提供预览。程序的配置信息主要存在preference中,该信息在数据显示时读取必要的配置信息。 4.2 数据库分析本程序数据存取方面主要用到了SQLite数据库和Preference存储机制。其中,SQLite主要用来存储课程信息,Preference则主要用来存储配置信息。4.2.1 SQLite数据表设计SQLite数据库是Android系统中非常重要的数据存储方法,它是Android系统唯一支持的数据库类型,
34、也是Android应用程序进行持久化存储的三种方式之一。 SQLite数据库是SQL数据库的简化版,支持大部分SQL操作。SQLite是Android应用程序中非常常用的一种数据存储手段。(1)数据库表的设计根据对本程序的需求分析,本程序一共需要用到两张数据表,分别为classinfo表和classtime表。classinfo表主要用来存储已经添加的课程,用户每添加一个课程就会在该表中新增一条记录,并且自动生成一个唯一的id,用以区别各个课程,同样名称但是分成两次添加的课程会被认为是不同的课程,这样设计的目的主要是为了方便查询。该表结构设计如下: 表4-1 字段名称数据类型是否主键说明CLA
35、SS_IDINTEGER是课程编号CLASS_NAME文本否课程名称CLASS_ADRESS文本否上课地点CLASS_NUMINTEGER否课程节数CLASS_WDINTEGER否课程所在星期 该数据库设计初衷为保存整个星期的课程,这样实现整个星期的课程排布,包括数据的存储,课程查看都比较方便。(2)SQLite数据库的创建创建数据库主要用到了DataBaseHelper类,该类继承了SQLiteOpenHelper类,实现了数据库、数据表的创建。具体方法如下:private static class DatabaseHelper extends SQLiteOpenHelper DataBa
36、seHelper(Context context) super(context, DATABASE_NAME, null, DATABASE_VERSION);Overridepublic void onCreate(SQLiteDatabase db) db.execSQL(DATABASE_CREATE);Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) db.execSQL(DROP TABLE IF EXISTS classinfo);onCreate(db);/在datab
37、asehelper的构造函数中调用父类构造函数,传入数据库名,创建数据库4.3 程序中的主要类4.3.1 GalleryTabActivity类和ClassListActivity类该类为整个应用的主Activity, 显示课程表的主界面。其主要方法如下:onCreate:Activity主要重写方法之一,实现程序初始化和UI展示;onResume:Activity重写方法之一,实现在唤醒Activity时刷新界面;onCreateOptionMenu:实现Option菜单的创建;onOptionMenuItemSeleted:实现菜单项的点击事件响应;ImageAdapter:结合galle
38、ry控件来实现主界面中的星期列表的循环显示;onListItemClick:在课程显示列表中实现点击相应列表实现作业Dialog的显示;界面设计方面通过RelativeLayout实现布局,使用了TextView,ImageButton课程列表通过ListView实现UI展示。该类通过继承BaseAdapter还实现了一个名为ImageAdapter的内部类,用来显示ListView中的数据并实现对ListView上ImageView控件点击的统一响应。4.3.2 ClassAddActivity类和SettingActivity类AddClass类为实现添加课程界面的Activity,主要实
39、现由用户选择和输入课程信息,并将所有的课程信息添加到数据库中。主要方法如下:onCreate: 初始化UI控件;onItemSelectedd:设置初始化时默认的数据;SaveData:将添加的课程保存进数据库中;gettimeString:将输入的课程信息转换成对应的时间字符串返回;AddPlan:类实现添加计划界面,并将添加的数据存入Preference中。主要方法如下:onCreate:实现初始化UI控件;onClick:实现button点击事件的响应;setPlan:实现添加计划到preference中;4.3.3 SQLiteHelper类和SQLClassTime类该类为自定义的重
40、要的数据库处理类,用来管理数据库,对数据库的所有操作都封装在这个类中,实现数据封装。将数据操作和UI操作隔离开来。主要方法如下:AddClass:给class表添加记录;db.insert(CLASS_TABLE, null, values);/insert方法插入一条数据deleteClass:删除一条class记录;db.delete(CLASS_TABLE, _id = + classid, null);/delete方法删除一条数据deleteAll:实现清空所有课程信息的方法,清除classinfo表中的所有数据5系统实现5.1程序首页面在完成系统设计以后,即可在Android虚拟机
41、中运行程序。进入程序的后,程序会自动跳到当天的页面,让你更方便的查看当天的课程。主界面如图5-1所示图5-1程序主页面5.2 课程设置实现软件设置界面,该界面为用户设置的界面,往后的使用中,用户可以通过“Menu”“设置”的操作步骤来进入该界面。在此界面,用户可以设置程序,设置课程,星期,地点。点击设置按钮可以进入设置课程名称,如图5-2所示: 图5-2课程的添加5.3 课程星期,地点实现点击设置按钮可以进入设置课程时间,可以设置每天的课程。如图5-3所示: 图5-3 图5-3添加日期 设置上课节次点击设置按钮可以进入设置课程的节次,如图5-4所示:图5-4选择课节点击设置按钮可以进入设置上课
42、地点,如图5-5所示: 图5-5添加上课地点 5.4更换背景通过设置版面点击设置可更换背景,如图5-6所示:图5-6更换背景相关代码如下:package net.iyouyu.schedule;import android.content.Context;import android.content.Intent;import android.content.SharedPreferences;import android.content.SharedPreferences.Editor;import android.os.Bundle;import android.preference.Li
43、stPreference;import android.preference.Preference;import android.preference.Preference.OnPreferenceChangeListener;import android.preference.Preference.OnPreferenceClickListener;import android.preference.PreferenceActivity;import android.widget.Toast;public class SystemSet extends PreferenceActivity
44、implements OnPreferenceClickListener,OnPreferenceChangeListenerprivate int bgnum=0;String bgKey,starttermkey;ListPreference bglp;Preference startterm;public static boolean isnew=false;Overrideprotected void onCreate(Bundle savedInstanceState) / TODO Auto-generated method stubsuper.onCreate(savedInst
45、anceState);addPreferencesFromResource(R.xml.systemset); bgKey = getResources().getString(R.string.bg_key); starttermkey=getResources().getString(R.string.startterm_key); bglp = (ListPreference)findPreference(bgKey); startterm=(Preference)findPreference(starttermkey); bglp.setOnPreferenceClickListener(this); bglp.setOnPreferenceChangeListener(this); startterm.setOnPreferenceClickListener(this); startterm.setOnPreferenceChangeListener(this);