




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 32/35基于Android教务信息管理系统摘 要:针对目前高校教务信息系统的缺乏,提出一种基于Android的教务信息查询管理系统,它不仅可以帮助师生查询常用信息,同时系统也提供学生选课、上课提醒等实用的辅助功能,为本校大学生使用教务系统提供便利。该系统充分利用Android平台的功能特点,采用 请求方式完美实现手机端和效劳器数据通信,利用jsoup和sax等方法进展数据解析处理,同时也对界面进展精心的设计,增强用户的体验。关键词:Android;教务信息管理系统;手机客户端;UIAcademic Information Management System based on Android
2、Abstract:For less than the current university educational information systems, the Senate proposed a Android-based information system, which can be used not only to help students and teachers query information, and the system also provides student enrollment, school reminders and other useful auxili
3、ary functions, dean of the University Students use The system provides convenience. The system features full advantage of the Android platform, using request method to achieve the perfect mobile client and server data communication using jsoup and sax and other methods of data analysis processing, b
4、ut also on the interface carefully designed to enhance the user experience.Keywords:Android;Academic Information Management System;Mobile client;UI; 目录 TOC o 1-3 h z u HYPERLINK l _Toc385250515第一章绪论 PAGEREF _Toc385250515 h 1HYPERLINK l _Toc3852505161.1 课题背景 PAGEREF _Toc385250516 h 1HYPERLINK l _Toc3
5、852505171.2 安卓平台简介 PAGEREF _Toc385250517 h 1HYPERLINK l _Toc385250518安卓平台特色介绍 PAGEREF _Toc385250518 h 2HYPERLINK l _Toc385250519安卓系统编程语言 PAGEREF _Toc385250519 h 2HYPERLINK l _Toc3852505201.3 安卓开发的现状 PAGEREF _Toc385250520 h 3HYPERLINK l _Toc385250521第二章系统开发环境与相关技术 PAGEREF _Toc385250521 h 3HYPERLINK l
6、 _Toc3852505222.1 系统开发的环境 PAGEREF _Toc385250522 h 3HYPERLINK l _Toc3852505232.2 系统开发软件的简介 PAGEREF _Toc385250523 h 4HYPERLINK l _Toc385250524的简介 PAGEREF _Toc385250524 h 4HYPERLINK l _Toc385250525其他软件的简介 PAGEREF _Toc385250525 h 4HYPERLINK l _Toc3852505262.3安卓环境的搭建 PAGEREF _Toc385250526 h 5HYPERLINK l
7、_Toc385250527软件下载准备 PAGEREF _Toc385250527 h 5HYPERLINK l _Toc385250528安装 PAGEREF _Toc385250528 h 5HYPERLINK l _Toc385250529安装 PAGEREF _Toc385250529 h 5HYPERLINK l _Toc385250530安装 PAGEREF _Toc385250530 h 5HYPERLINK l _Toc385250531创立AVD PAGEREF _Toc385250531 h 6HYPERLINK l _Toc3852505322.4 系统开发编程语言的简介
8、 PAGEREF _Toc385250532 h 6HYPERLINK l _Toc385250533第三章系统需求分析与概要设计 PAGEREF _Toc385250533 h 8HYPERLINK l _Toc3852505343.1 系统需求 PAGEREF _Toc385250534 h 8HYPERLINK l _Toc3852505353.2 可行性分析 PAGEREF _Toc385250535 h 8HYPERLINK l _Toc3852505363.3 系统概要设计 PAGEREF _Toc385250536 h 8HYPERLINK l _Toc385250537系统的功
9、能模块说明 PAGEREF _Toc385250537 h 8HYPERLINK l _Toc385250538系统功能结构图 PAGEREF _Toc385250538 h 9HYPERLINK l _Toc385250539第四章系统详细设计 PAGEREF _Toc385250539 h 10HYPERLINK l _Toc3852505404.1 登录功能与实现 PAGEREF _Toc385250540 h 10HYPERLINK l _Toc385250541登录界面 PAGEREF _Toc385250541 h 10HYPERLINK l _Toc385250542登录按钮监听
10、器 PAGEREF _Toc385250542 h 12HYPERLINK l _Toc385250543新开线程 PAGEREF _Toc385250543 h 12HYPERLINK l _Toc385250544提交验证信息 PAGEREF _Toc385250544 h 13HYPERLINK l _Toc385250545响应判断 PAGEREF _Toc385250545 h 13HYPERLINK l _Toc3852505464.2 程序主页面实现 PAGEREF _Toc385250546 h 14HYPERLINK l _Toc385250547主界面的头部菜单栏 PAGE
11、REF _Toc385250547 h 14HYPERLINK l _Toc385250548页面跳转 PAGEREF _Toc385250548 h 15HYPERLINK l _Toc385250549通过WebView显示信息 PAGEREF _Toc385250549 h 18HYPERLINK l _Toc3852505504.3 选课功能实现 PAGEREF _Toc385250550 h 19HYPERLINK l _Toc385250551页面设计 PAGEREF _Toc385250551 h 20HYPERLINK l _Toc385250552开辟新线程 PAGEREF
12、_Toc385250552 h 21HYPERLINK l _Toc385250553用handler更新UI PAGEREF _Toc385250553 h 22HYPERLINK l _Toc385250554用户点击事件 PAGEREF _Toc385250554 h 22HYPERLINK l _Toc3852505554.4 公共类 PAGEREF _Toc385250555 h 23HYPERLINK l _Toc385250556文件解析 PAGEREF _Toc385250556 h 23HYPERLINK l _Toc385250557下载效劳器返回数据 PAGEREF _T
13、oc385250557 h 25HYPERLINK l _Toc385250558保存用户状态 PAGEREF _Toc385250558 h 25HYPERLINK l _Toc385250559文件解析 PAGEREF _Toc385250559 h 27HYPERLINK l _Toc385250560第五章总结 PAGEREF _Toc385250560 h 29HYPERLINK l _Toc385250561参考文献 PAGEREF _Toc385250561 h 31第一章 绪论1.1 课题背景当今社会是信息社会,人们无论何时、无论何地都是在与信息打交道,您阅读的报纸是信息、看到
14、的广告是信息、电视传播的是信息、上网浏览的是信息,当代人简直生活在“信息海洋中。这么多的信息哪些是有用的,哪些是无用的,人们在信息丰富的社会中,难免会忘记一些重要信息,有时会掉一个寻呼机,有时会掉一个本或笔记本什么的,这些“信息载体也许包含着重要的个人信息。如何将这些有用的信息存储起来防止忘记或丧失,如何对这些有用信息进展有序地组织、管理以资对生活决策提供帮助,这正是信息管理软件要解决的问题。进入21世纪以来,无所不在的计算将打破传统意义上的计算机概念:使用更方便、移动更容易、功能更多样化的各种具有计算机功能的设备大量出现,并且在需要时,可以随时通过无线方式连接到移动数据通信网络中,以便高效地
15、交换信息和获得各种效劳。这种设备人们称之为无线设备。移动设备最根本的特征是移动性,即能够利用无线电波、微波或红外线等传输介质允许通信中的设备在一定围自由移动,其位置不受束缚,从而实现通信双方至少有一方在移动中进展信息传输和交换的目的。移动设备从产生到现在的历史并不长,然而其开展速度却远远超出人们的预料。现如今,移动设备大行其道,全球有超过十亿部移动正在被使用,并且这个数目正在逐渐增加。在除美国之外的每个兴旺国家,拥有手机的人数比拥有计算机的人数更多。而目前,随着移动设备越来越普与与移动硬件的提升,移动设备的功能越来越完善,移动设备的系统平台也日渐炽热起来。目前国最常见的移动开发平台有Symbi
16、an,iPhone,Windows Phone 以与Android。如今国外都有非常多的Android 系统的用户。自从2011年第一季度,Android在全球份额首次超过Symbian,跃居全球第一。截止2012年2月据,Android占据全球智能手机操作系统市场52.5%的份额,中国市场占有率为68.4%。1考虑到如今手机系统的开展现状,以与Android平台系统自身所拥有的优势。因此,基于安卓平台开发一款手机应用软件具有较大的意义和可行性。1.2 安卓平台简介Android一词的本义指“机器人,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该
17、平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。目前,最新版本为Android 4.0 Ice Cream Sandwich 冰激凌治 以与还在测试中的Android 5.0Jelly Bean果冻豆。 安卓平台特色介绍1.开放性在优势方面,Android平台首先就是其开放性,开放的平台允许任何移动终端厂商参加到Android联盟中来。显著的开放性可以使其拥有更多的开发者,随着用户和应用的日益丰富,一个崭新的平台也将很快走向成熟。开发性对于Android的开展而言,有利于积累人气,这里的人气包括消费者和厂商,而对于消费者来讲,最大的受益正是丰
18、富的软件资源。开放的平台也会带来更大竞争,如此一来,消费者将可以用更低的价位购得心仪的手机。2.挣脱运营商的束缚在过去很长的一段时间,特别是在欧美地区,手机应用往往受到运营商制约,使用什么功能接入什么网络,几乎都受到运营商的控制。自从iPhone上市,用户可以更加方便地连接网络,运营商的制约减少。随着EDGE、HSDPA这些2G至3G移动网络的逐步过渡和提升,手机随意接入网络已不是运营商口中的笑谈。3.丰富的硬件选择这一点还是与Android平台的开放性相关,由于Android的开放性,众多的厂商会推出千奇百怪,功能特色各具的多种产品。功能上的差异和特色,却不会影响到数据同步、甚至软件的兼容。
19、好比你从诺基亚Symbian风格手机一下改用苹果iPhone,同时还可将Symbian中优秀的软件带到iPhone上使用、联系人等资料更是可以方便地转移。4.不受任何限制的开发商Android平台提供应第三方开发商一个十分广泛、自由的环境。因此不会受到各种条条框框的阻扰,可想而知,会有多少新颖别致的软件会诞生。但也有其两面性,血腥、暴力、情色方面的程序和游戏如何控制正是留给Android难题之一。安卓系统编程语言在Android中,开发者可以使用Java作为编程语言来开发应用程序,也可以通过NDK使用C/C+作为编程语言来开发应用程序,也可使用SL4A来使用其他各种脚本语言进展编程如:pyth
20、on、lua、tcl、php等等,还有其他诸如:Qtqt for android、Monomono for android等一些著名编程框架也开场支持Android编程,甚至通过MonoDroid,开发者还可以使用C#作为编程语言来开发应用程序。另外,谷歌还在2009年特别发布了针对初学者的Android Simple语言,该语言类似Basic语言。而在网页编程语言方面,JavaScript,ajax,HTML5,jquery、sencha、dojo、mobl、PhoneGap等等都已经支持Android开发。在Android系统底层方面,Android使用C/C+作为开发语言。而Androi
21、d应用层的开发,根本上全部是采用Java开发。但和我们一般互联网上应用的JAVA还是有些区别的。此“JAVA是google自己做的一套实现来实现,和SUN的底层是不太一样的。不过对开发应用区别不大。1.3 安卓开发的现状目前国的Android开发还是主要以应用开发为主,主要分成3类:为企业开发应用、开发通用应用放到Android Market或者其他App Market 销售以与游戏开发放到 Android Market 或者其他 App Market 销售。第一类开发者一般身处规模较大的公司,这些公司主要为自有品牌或者其他品牌设计手机或者平板电脑的总体方案。除了根据需求对系统进展定制外,更多
22、的工作在于为这些系统编写定制的应用。第二类开发者,一般处于创业型公司或者是独立开发者,他们的盈利方式主要是2种:为国外公司进展外包开发,或者通过Google 的移动广告AdMob通过广告点击分成。而理论上的通过付费下载的形式来盈利的,现在国鲜见成功者。第三类开发者,目前和第二类开发者类似。下列图是开发者提交的应用和游戏的数目所占的比例图, 从中也可以看出应用开发数目远超游戏开发。图1.1 开发者提交应用和游戏比例图第二章 系统开发环境与相关技术2.1 系统开发的环境Android 的上层应用程序是用Java 语言开发,同时还需要基于Dalvik虚拟机,所以,Google公司推荐使用主流的Jav
23、a继承开发环境Eclipse。只有Eclipse还不够, 因为是使用 Java 语言进展开发, 还应该有由SUN公司提供的Java SDK(其中包括JRE:Java Runtime Environment)。此外,Android的应用程序开发和Java开发有较大区别的,所以还需要有Google提供的Android SDK。同时,还需要在 Eclipse安装ADT,为 Android开发提供开发工具的升级或者变更,是Eclipse 下开发工具的升级下载的工具。简言之,需要以下软件,才能搭建 Android 开发环境,从而进展Android应用程序的开发。(1) Eclipse (2) JDK(3
24、) Android SDK(4) ADTAndroid Development Tools2.2 系统开发软件的简介 Eclipse的简介Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组效劳,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具Java Development Kit,JDK。 虽然大多数用户很乐于将 Eclipse 当作 Java 集成开发环境IDE来使用,但 Eclipse 的目标却不仅限于此。Eclipse 还包括插件开发环境Plug-in Development Envi
25、ronment,PDE,这个组件主要针对希望扩展 Eclipse 的软件开发人员,因为它允许他们构建与 Eclipse 环境无缝集成的工具。由于 Eclipse 中的每样东西都是插件,对于给 Eclipse 提供插件,以与给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。 这种平等和一致性并不仅限于 Java 开发工具。尽管 Eclipse 是使用 Java 语言开发的,但它的用途并不限于 Java 语言;例如,支持诸如 C/C+ 和 COBOL 等编程语言的插件已经可用,或预计将会推出。Eclipse框架还可用来作为与软件开发无关的其他应用程序类型的根底,比方容管
26、理系统。其他软件的简介(1)JDKJDK(Java Development Kit)是Sun Microsystems针对Java开发员的产品。自从Java推出以来,JDK已经成为使用最广泛的Java SDK。JDK 是整个Java的核心,包括了Java运行环境,Java工具和Java根底的类库。JDK是学好Java的第一步。而专门运行在x86平台的Jrocket在效劳端运行效率也要比Sun JDK好很多。从SUN的JDK5.0开场,提供了泛型等非常实用的功能,其版本也不断更新,运行效率得到了非常大的提高。(2) Android SDKSDK:software development kit软
27、件开发工具包。被软件开发工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。 因此,Android SDK 指的既是Android专属的软件开发工具包。(3)ADTAndroid Development Tools目前Android开发所用的开发工具是Eclipse,在Eclipse编译IDE环境中,安装ADT,为Android开发提供开发工具的升级或者变更,简单理解为在Eclipse下开发工具的升级下载工具。 2.3安卓环境的搭建 软件下载准备分别下载 JDK、Eclipse、Android SDK,并首先解压Eclipse完成安装。 JDK安装首先按提示完
28、成SDK安装,然后设置环境变量(非必须)。1.我的电脑-属性-高级-环境变量-系统变量中添加以下环境变量: 2.JAVA_HOME值为:E:AndroidJavajdk_21我所安装JDK的目录 3.CLASSPATH值:.;%JAVA_HOME%libtools.jar;%JAVA_HOME%libdt.jar;%JAVA_HOME%bin;4.Path: 在开场追加 %JAVA_HOME%bin; 安装完成之后,检查JDK是否安装成功。翻开cmd窗口,输入java version 查看JDK的版本信息。出现下面的画面表示安装成功了,如图2-1:图2-1 安卓环境设置JDK效果测试图ndro
29、id SDK安装下载完成后解压到任意路径运行SDK Setup.exe,点击Available Packages。选择希望安装的SDK与其文档或者其它包,按需点击下面选项开场下载安装所选包 在用户变量中新建PATH值为:Android SDK中的tools绝对路径本机为D:AndroidDevelopandroid-sdk-windowstools。 完成按“确定后,重新启动计算机。重启计算机以后,进入cmd命令窗口,检查SDK是不是安装成功。 运行 android h 出现参数选择,说明安装成功。DT安装翻开 Eclipse,进入菜单中的 Help - Install New Softwar
30、e 点击Add.按钮,弹出对话框要求输入Name和Location:Name自己随便取,Location输入dl-ssl.google./android/eclipse。确定返回后,在work with后的下拉列表中选择我们刚刚添加的ADT,点击下面出现的Developer Tools,展开它会有Android DDMS和Android Development Tool,勾选他们,然后按步骤完成。完成之后:选择Window Preferences. 在左边的面板选择Android,然后在右侧点击Browse.并选中SDK路径,本机为: E:Androidandroid-sdk-windows点
31、击Apply。配置完成。 创立AVD为使Android应用程序可以在模拟器上运行,必须创立AVD。1、在Eclipse中。选择Windows Android SDK and AVD Manager 2、点击左侧面板的Virtual Devices,再右侧点击New 3、填入Name,选择Target的API,SD Card大小任意,Skin随便选,Hardware目前保持默认值 4、点击Create AVD即可完成创立AVD 综上一切完成后安卓环境搭建完成。2.4 系统开发编程语言的简介Java是一种简单的,跨平台的,面向对象的,分布式的,解释的,强健的平安的,结构的中立的,可移植的,性能很优
32、异的多线程的,动态的语言。Java 编程语言的风格十分接近C、C+语言。Java是一个纯的面向对象的程序设计语言,它继承了 C+ 语言面向对象技术的核心,Java舍弃了C +语言中容易引起错误的指针以引用取代、运算符重载operator overloading、多重继承以接口取代等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的存空间,使得程序员不用再为存管理而担忧。在 Java SE 1.5 版本中,Java 又引入了泛型编程Generic Programming、类型平安的枚举、不定长参数和自动装/拆箱等语言特性。 Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它
33、首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码,从而实现了“一次编译、到处执行的跨平台特性。不过,每次的编译执行需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。但在 J2SE 发布后,Java 的执行速度有了大幅提升。与传统程序不同,Sun 公司在推出 Java 之际就将其作为一种开放的技术。全球数以万计的 Java 开发公司被要求所设计的 Java 软件必须相互兼容。“Java 语言靠群体的力量而非公司的力量是 Sun 公司的口号之一,并获得了广阔软件开发商的认同。这与微软公司所倡导的注重精英和封闭式的模式完全不同
34、。 Sun 公司对 Java 编程语言的解释是:Java 编程语言是个简单、面向对象、分布式、解释性、强健、平安与系统无关、可移植、高性能、多线程和动态的语言。 Java 平台是基于 Java 语言的平台。 Java的特点:1.平台无关性 平台无关性是指Java能运行于不同的平台。Java引进虚拟机 原理,并运行于虚拟机,实现不同平台的Java接口之间。使用Java编写的程序能在世界围共享。Java的数据类型与 机器无关,Java虚拟机Java Virtual Machine是建立在硬件和操作系统之上,实现Java二进制代码的解释执行功能, 提供于不同平台的接口的。 2.平安性 Java的编程
35、类似C+,学习过C+的读者将很快掌握Java的精华。Java舍弃了C+的指针对存储器地址的直接操作,程序运行时,存由操作系统分配,这样可以防止病毒通过指针侵入系统。Java对程序提供了平安管理器,防止程序的非法访问。 3.面向对象 Java吸取了C+面向对象的概念,将数据封装于类中,利用类的优点,实现了程序的简洁性和便于维护性。类的封装性、继承性等有关对象的特性,使程序代码只需一次编译,然后通过上述特性反复利用。程序员只需把主要精力用在类和接口的设计和应用上。Java提供了众多的一般对象的类,通过继承即可使用父类的方法。在Java中,类的继承关系是单一的非多重的,一个子类只有一个父类,子类的父
36、类又有一个父类。Java提供的Object类与其子类的继承关系如同一棵倒立的树形,根类为Object类,Object类功能强大,经常会使用到它与其它派生的子类。 4.分布式 Java建立在扩展TCP/IP网络平台上。库函数提供了用 和FTP协议传送和承受信息的方法。这使得程序员使用网络上的文件和使用本机文件一样容易。 5.强健性 Java致力于检查程序在编译和运行时的错误。类型检查帮助检查出许多开发早期出现的错误。Java自己操纵存减少了存出错的可能性。Java还实现了真数组,防止了覆盖数据的可能,这些功能特征大大提高了开发Java应用程序的周期。并且Java还提供了Null指针检测、数组边界
37、检测、异常出口、Byte code校验等功能。 6.解释型 我们知道C,C+等语言,都是针对CPU芯片进展编译,生成机器代码,该代码的运行就和特定的CPU有关。Java不像C或C+,它不针对CPU芯片进展编译,而是把程序编译成称为字节码的一种“中间代码。字节码是很接近机器码的文件,可以在提供了java虚拟机JVM的任何系统上被解释执行。 7.动态 JAVA程序的根本组成单元就是类,有些类是自己编写的,有些是从类库中引入的,而类又是运行时动态装载的,这就使得Java可以在分部环境中动态的维护程序与分类,而不像C+那样,没档期类库升级以后,如果想让程序具有新类库提供的功能,就需要修改程序,重新编译
38、。第三章 系统需求分析与概要设计3.1系统需求该系统是一个基于学校选课系统针对学生的手机客户端。它是为本软件的持有者提供对选课系统的一些功能进展根本操作。它包括成绩查询,课表查询,本学期所选课程查询,学籍查询,考试信息查询,修改密码,选课等操作。本软件为在校学生方便快捷的使用学校选课系统提供一种途径。3.2 可行性分析通过对学校选课系统整体研究分析,本学校选课系统不提供对外接口,所以不能独立存在,只能依附于选课系统jsp页面。通过对选课系统 请求处理研究发现,只要提供正确参数,系统后台servlet会返回相应Xml或Html页面。通过对返回数据的处理,根本可以实现上述功能。3.3 系统概要设计
39、 系统的功能模块说明1登录模块:作为系统启动后第一个界面,其中包括用户名密码输入其中用户名为学生学号。登录成功后自动保存用户名与密码,有利于提高用户体验。最后提供效劳器验证信息返回提示,如果验证通过提示后跳转页面,如果失败那么提示重新登录。2系统主界面:用户登录后跳转到此界面,该界面用标签方式同时加载3个页面在手机,用户可通过下方按钮选择当前需要的界面,提高手机屏幕所显示信息量,于软件运行速度。3数据解析模块:用于处理效劳器返回数据。4数据下载模块:利用 请求接收返回数据 系统功能结构图在程序设计分析的根底上,结合实际情况,得出本程序的功能模块结构图。在结构图中包括了功能模块的表示与其中局部功
40、能的实现原理。1、总体设计选课系统课表查询课程查询成绩查询学籍查询选课修改密码首先是一个总的功能模块的结构图,其中包括了系统设计时的总体功能概括,如图3.1。图 3.1 整体功能示意2、系统流程图跟据需求,程序流程如下:用户登录后加载主框架,通过框架加载常用查询页面与效劳器授权才能使用的查询页面,如选课,选课查询,考试查询等。整体流程如图3-2.。学生选课系统登录主界面常用查询授权查询关于/退出课表查询课程查询成绩查询学籍信息修改密码选课考试信息查询图 3.2 软件流程3、登录模块设计学生选课系统登录生成URL判断登录状态 Downloader返回XML验证数据解析XML数据返回验证数据UI线
41、程新开线程登录成功并跳转01登录模块由于要在网络上取验证数据,所耗时间不确定,为不使主界面在验证时出现假死现象,所以必须新开线程,和UI所在线程别离,实现异步登录。具体流程如图3-3图 3-3 登录数据流程第四章 系统详细设计4.1登录功能与实现登录界面本界面采用线性布局LinearLayout将标签,文本框,按钮,选项框组织排列。值得注意的是这里的用户名输入框使用了AutoCompleteTextView控件而不是普通的EditText,这样做是为了使程序可以使用保存下的用户名密码,并且在开场输入时可以提示用户。这样做可以减少用户重复输入,有助提高软件可操作性。首先建立好Android工程,
42、在工程下的res/layout下建立一个名为Login的空xml文件。然后按照设计将布局完成。结果如下列图4-1所示。图4-1 登录界面然后在工程src目录下所对应Activity中创立控件,并用findViewById方法得到所创立的控件ID并转换成相应控件,实现代码如下:sp = this.getSharedPreferences(passwordFile, MODE_PRIVATE);savePasswordCB.setChecked(true);cardNumAuto.setThreshold(1);passwordET.setInputType(InputType.TYPE_CLAS
43、S_TEXT| InputType.TYPE_TEXT_VARIATION_PASSWORD);其中savePassword为多项选择框,只有这个值为true时才会保存密码。当用户登录过之后,下次登录会在输入第一个字符时开场提示用户。用户名密码保存使用SharedPreferences,Android自带的微型数据存储类,SharedPreferences保存数据,其背后是用xml文件存放数据,文件存放在/data/data/shared_prefs目录下。其中数据数据适配器实现代码如下:new TextWatcher() public void onTextChanged(CharSeque
44、nce s, int start, int before,int count) String allUserName = new Stringsp.getAll().size();allUserName = sp.getAll().keySet().toArray(new String0);ArrayAdapter adapter = new ArrayAdapter(Login_Activity.this,allUserName);cardNumAuto.setAdapter(adapter);public void beforeTextChanged(CharSequence s, int
45、 start, int count,int after) public void afterTextChanged(Editable s) passwordET.setText(sp.getString(cardNumAuto.getText().toString(), ); 登录按钮监听器当用户名密码输入完成点击登录将会执行登录操作,所以,必须给登录按钮添加监听器,用来监听点击事件。具体流程为,得到用户输入的用户名和密码,并新开线程。并在用提示框通知用户现在正在验证用户信息。具体实现代码如下:logBT.setOnClickListener(new OnClickListener() pub
46、lic void onClick(View v) cardNumStr = cardNumAuto.getText().toString();passwordStr = passwordET.getText().toString();mDialog = new ProgressDialog(Login_Activity.this);mDialog.setIcon(DEFAULT_KEYS_DISABLE);mDialog.setTitle(登陆);mDialog.setMessage(正在登陆效劳器,请稍后.);mDialog.show();Thread loginThread = new T
47、hread(new LoginThread();loginThread.start();); 新开线程监听器绑定之后,在用户点击登录按钮时将会新开一个线程,所有验证中的操作全部在新线程中执行。新开线程主要用于发送 请求并接收验证信息,之后通知页面显示登录结果实现代码如下所示: class LoginThread implements Runnable public void run() String username = cardNumAuto.getText().toString();String password = passwordET.getText().toString();Arra
48、yList userStr = loginServer(username, password);Message msg = handler.obtainMessage();if (!(userStr.get(0).equals(0) msg.what = 1; handler.sendMessage(msg); else if (savePasswordCB.isChecked() / 登陆成功才保存密码sp.edit().putString(cardNumStr, passwordStr) mit();msg.what = 0; handler.sendMessage(msg);新开线程又包
49、含几项对数据的处理工作,以与对返回处理结果,并对当前页面的一些操作。 提交验证信息handler为接收返回验证信息并在界面显示登录结果,鉴于本学校效劳器返回验证信息为一XML文件,解析后用泛型ArrayList存储,其中第一条为用户名密码验证信息,返回1为验证不通过,返回0为通过,并附加一些用户根本数据作为之后操作参数。其中 请求的URL与数据处理实现代码如下:private ArrayList loginServer(String username, String password) ArrayList userStr=null; String userName=username; Stri
50、ng passWord=password;String path=/loginservlet?action=1&ucode=+userName+&upwd=+passWord+&utype=S;path = path.replaceAll(s*, ); Downloader downloader = new Downloader(); String json = new String( downloader.download(path);try userStr = Method.xmlParse( json);catch (Exception e) return userStr; 由于在And
51、roid中,在输入完成后自动添加上一个空格,但 请求URL中,效劳器接收时没有控制,所以在这里得对生成的URL进展处理,path = path.replaceAll(s*, )为去掉字符串中所有空格。该方法返回一个ArrayList,这个ArrayList是可变长数组,为方便返回数据的可操作性。ctivity响应判断将效劳器返回的数据解析后,我们就知道了这次登录操作中到底有没有通过效劳器验证,但是在新线程中下载解析后的数据我们无法直接在Activity中使用。所以当前Activity必须在新线程执行完毕前处于等待状态,并且随时准备响应。新开线程与Activity不处于同一线程,不能直接对Act
52、ivity进展操作。所以这里必须有一个Handler来承受新线程发送的数据, 并用此数据配合主线程更新Activity。前面的新开线程中,我们判断了效劳器返回值是否为0,并为一个状态量设置了值,这个值就是Handler所承受的值。通过新线程的值来控制UI更新,实现代码如下:Handler handler = new Handler()public void handleMessage(Message msg) switch(msg.what) case 0: mDialog.cancel(); Toast.makeText(getApplicationContext(), 登录成功, Toas
53、t.LENGTH_SHORT).show(); Intent intent = new Intent(); intent.setClass(Login_Activity.this, Main_Bootom_Tab.class); startActivity(intent); finish(); break; case 1: mDialog.cancel(); Toast.makeText(getApplicationContext(), 账户或密码错误, Toast.LENGTH_SHORT).show();break; ;这是一个部类,写在在Activity中。如果新线程返回msg.what
54、=0那么关闭Activity中的对话框,并提示登录成功,然后跳转到程序主页面,并将登录页面销毁。如果不为0那么提示用户账户或密码错误。4.2 程序主页面实现主界面的头部菜单栏用户登录通过效劳器验证后界面将跳转到Main_bootom_Tab页面,此页面知识一个框架,通过这个Activity可以同时加载多个页面,增加屏幕可显示信息量。在页面底部放置一个菜单栏,用户可以通过点击此菜单栏来实现页面之间的切换。制作这个头部菜单栏是为了提升软件的可操作性,用的是TabHost+RadioGroup相结合的方法来制作这个局部的。菜单栏的底部位置是通过TabHost这个布局来实现的,然后是LinearLay
55、out的线性布局来布置容。部的选项卡是通过TabWiget来实现在工程下的res/layout下建立一个名为main的空xml文件,然后在这个文件里按照思路来添加布局代码。主界面的菜单项选择项使用RadioGroup来建立,在这里的布局中RadioGroup里容纳4个RadioButton,而RadioButton是单项选择按钮。在这种情况下就只有也只能有一个RadioButton能被选择,并且在开场时默认了第一个按钮被选中。其中RadioButton的实现方式是在设置了部的文字,然后再按钮的顶部上添加上图片,实现的代码如下:从上述代码可以看到,在菜单的每个选项卡样式都是调用了style上的m
56、ain_tab_bottom来实现样式的,而main_tab_bottom的背景background的值是drawable/btn_bg ,btn_bg不是一个简单的背景图片,而是一个xml文件,通过这个文件可以实现菜单项选择项卡切换时的背景切换的效果,使得这个菜单栏更加的美观,代码是使用了安卓的selector来实现,在这里是通过不停的条件来判断使用哪一个item的,里面包括了几个属性值,如是否获得焦点、是否响应事件、是否点击三个条件。实施的代码如下:制定完主页面布局后,在src/.manage.activity下的MainPage文件中OnCreateOnCreate方法是用来初始化Act
57、ivity实例对象的中调用布局,到现在为止顶部菜单栏的布局已经根本完成,但现在里面所对应的容还是空的。所以就需要在这里给tabHost中添加tab容,以第一格的tab为例,先是通过Intent的方式新建个mDate,用来实现页面的跳转的方法,然后动态用tabHost来通过addTab的方法添加对应TabSpec的值和各个属性。最后在添加RadioGroup的选择操作函数,这里是通过switch来完成对应按钮的功能的实现,在每个case项过tabHost.setCurrentTabByTag来给与特定的值实现页面上的跳转。最终的效果如图4-1:图4-2 主页界面头部菜单页面跳转在Main_boo
58、tom_Tab中添加两个页面,里面添加系统的功能选项。第一个为MainActivity,第二个为ChoiseCourse。实现效果如下列图所示:图4-3 系统主界面其中每一个选项是一个自定义的RelativeLayout,定义样式为: 在主类当过方法直接得到一个对象,然后对象上绑定监听器。results.setOnClickListener(new gotoActivity();通过判断所点击的对象的ID将Intent中添加标志,最后用Intent对象启动新Activity,具体实现代码如下:class gotoActivity implements OnClickListenerpublic
59、 void onClick(View v) Intent intent=new Intent();intent.setClass(MainActivity.this, resInformation.class);intent.putExtra(mark, 2);intent.putExtra(mark, 3);logn!);intent.putExtra(mark, 4);logn!);intent.putExtra(mark, 5);elsereturn;新启动的Activity被启动后,去除Intent中传入的键值对,通过标志信息的判断,来选择所需要发送的URL。由前期分析的到,学校教务系
60、统只能通过 请求发送接收数据,从系统整体结构分析,加个连接池类可以增加系统的可扩展性与可管理性。整个连接池类只作为字符串的返回与修饰,在这里不做介绍。通过WebView显示信息在Android手机中置了一款高性能webkit核浏览器,在SDK中封装为一个叫做WebView组件。WebKit是Mac OS X v10.3与以上版本所包含的软件框架。 同时,WebKit也是Mac OS X的Safari网页浏览器的根底。WebKit是一个开源项目,主要由KDE的KHTML修改而来并且包含了一些来自苹果公司的一些组件。传统上,WebKit包含一个网页引擎WebCore和一个脚本引擎JavaScrip
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 铜电解沉积熔炼法考核试卷及答案
- 通信固定终端设备装调工异常处理考核试卷及答案
- 信息技术课试题及答案
- 医疗器械采购合同
- 银行综合员试题及答案
- 银行研发面试题目及答案
- 银行新员工测试题及答案
- 汨罗书法专业试题及答案
- 法律专业试题及答案
- 小学语文六年级下册《竹石》教育教学课件
- 四川产业振兴基金投资集团有限公司招聘笔试题库2025
- 光伏备案合同协议
- 法考历年真题答案2024
- 多器官功能障碍护理常规
- 宠物训导技术课件
- 【闵行区人民法院】上海市闵行区劳动人事争议调解仲裁与审判白皮书(2023-2024年)
- 预防动物伤害安全知识教育
- 各岗位应知应会“明白卡”(含矿长等)
- 2025年数控铣工技能竞赛参考试指导题库500题(含答案)
- 消防服务外包投标方案投标方案(技术方案)
- (2024新版本)人教版七年级上册历史全册教案
评论
0/150
提交评论