1、基于Android教务信息管理系统 摘 要:针对当前高校教务信息系统局限性,提出一种基于Android教务信息查询管理系统,它不但可以协助师生查询惯用信息,同步系统也提供学生选课、上课提示等实用辅助功能,为本校大学生使用教务系统提供便利。该系统充分运用Android平台功能特点,采用Http祈求方式完美实现手机端和服务器数据通信,运用jsoup和sax等办法进行数据解析解决,同步也对界面进行精心设计,增强顾客体验。核心词:Android;教务信息管理系统;手机客户端;UIAcademic Information Management System based on Android Abstra
2、ct: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 auxiliary functi
3、ons,dean of the University Students use The system provides convenience. The system features full advantage of the Android platform,using Http request method to achieve the perfect mobile client and server data communication using jsoup and sax and other methods of data analysis processing,but also
4、on the interface carefully designed to enhance the user experience.Key words: Android;Academic Information Management System;Mobile client;UI;目录第一章 绪论11.1 课题背景11.2 安卓平台简介11.2.1 安卓平台特色简介21.2.2 安卓系统编程语言21.3 安卓开发现状3第二章 系统开发环境与有关技术32.1 系统开发环境32.2 系统开发软件简介42.2.1 Eclipse简介42.2.2其她软件简介42.3安卓环境搭建52.3.1 软件下载
5、准备52.3.2 JDK安装52.3.3 Android SDK安装52.3.4 ADT安装52.3.5 创立AVD62.4 系统开发编程语言简介6第三章 系统需求分析及概要设计83.1 系统需求83.2 可行性分析83.3 系统概要设计83.3.1 系统功能模块阐明83.3.2 系统功能构造图9第四章 系统详细设计104.1 登录功能与实现104.1.1 登录界面104.1.2 登录按钮监听器124.1.3 新开线程124.1.4 提交验证信息134.1.5 Activity响应判断134.2 程序主页面实现144.2.1 主界面头部菜单栏144.2.2页面跳转154.2.3通过WebVie
6、w显示信息184.3 选课功能实现194.3.1页面设计204.3.2开辟新线程214.3.3用handler更新UI224.3.4顾客点击事件224.4 公共类234.4.1 XML文献解析234.4.2 下载服务器返回数据254.4.3 保存顾客状态254.4.4 HTML文献解析27第五章 总结29参照文献31第一章 绪论1.1 课题背景当今社会是信息社会,人们无论何时、无论何地都是在与信息打交道,您阅读报纸是信息、看到广告是信息、电视传播是信息、上网浏览是信息,当代人简直生活在“信息海洋”中。这样多信息哪些是有用,哪些是无用,人们在信息丰富社会中,难免会忘掉某些重要信息,有时会掉一种寻
7、呼机,有时会掉一种电话本或笔记本什么,这些“信息载体”也许包括着重要个人信息。如何将这些有用信息存储起来避免忘掉或丢失,如何对这些有用信息进行有序地组织、管理以资对生活决策提供协助,这正是信息管理软件要解决问题。进入21世纪以来,无所不在计算将打破老式意义上计算机概念:使用更以便、移动更容易、功能更多样化各种具备计算机功能设备大量浮现,并且在需要时,可以随时通过无线方式连接到移动数据通信网络中,以便高效地互换信息和获得各种服务。这种设备人们称之为无线设备。移动设备最主线特性是移动性,即可以运用无线电波、微波或红外线等传播介质容许通信中设备在一定范畴内自由移动,其位置不受束缚,从而实现通信双方至
8、少有一方在移动中进行信息传播和互换目。移动设备从产生到当前历史并不长,然而其发展速度却远远超过人们预料。现如今,移动设备大行其道,全球有超过十亿部移动电话正在被使用,并且这个数目正在逐渐增长。在除美国之外每个发达国家,拥有手机人数比拥有计算机人数更多。而当前,随着移动设备越来越普及及移动硬件提高,移动设备功能越来越完善,移动设备系统平台也日渐火热起来。当前国内最常用移动开发平台有Symbian,iPhone,Windows Phone 以及Android。如今国内外均有非常多Android 系统顾客。自从第一季度,Android在全球份额初次超过Symbian,跃居全球第一。截止2月据,And
9、roid占据全球智能手机操作系统市场52.5%份额,中华人民共和国市场占有率为68.4%。1考虑到如今手机系统发呈现状,以及Android平台系统自身所拥有优势。因而,基于安卓平台开发一款手机应用软件具备较大意义和可行性。1.2 安卓平台简介Android一词本义指“机器人”,同步也是Google于11月5日宣布基于Linux平台开源手机操作系统名称,该平台由操作系统、中间件、顾客界面和应用软件构成,号称是首个为移动终端打造真正开放和完整移动软件。当前,最新版本为Android 4.0 Ice Cream Sandwich (冰激凌三明治) 以及还在测试中Android 5.0Jelly Be
10、an(果冻豆)。1.2.1 安卓平台特色简介1.开放性在优势方面,Android平台一方面就是其开放性,开放平台容许任何移动终端厂商加入到Android联盟中来。明显开放性可以使其拥有更多开发者,随着顾客和应用日益丰富,一种崭新平台也将不久走向成熟。开发性对于Android发展而言,有助于积累人气,这里人气涉及消费者和厂商,而对于消费者来讲,最大受益正是丰富软件资源。开放平台也会带来更大竞争,如此一来,消费者将可以用更低价位购得心仪手机。2.挣脱运营商束缚在过去很长一段时间,特别是在欧美地区,手机应用往往受到运营商制约,使用什么功能接入什么网络,几乎都受到运营商控制。自从iPhone上市,顾客
11、可以更加以便地连接网络,运营商制约减少。随着EDGE、HSDPA这些2G至3G移动网络逐渐过渡和提高,手机随意接入网络已不是运营商口中笑谈。3.丰富硬件选取这一点还是与Android平台开放性有关,由于Android开放性,众多厂商会推出千奇百怪,功能特色各具各种产品。功能上差别和特色,却不会影响到数据同步、甚至软件兼容。好比你从诺基亚Symbian风格手机一下改用苹果iPhone,同步还可将Symbian中先进软件带到iPhone上使用、联系人等资料更是可以以便地转移。4.不受任何限制开发商Android平台提供应第三方开发商一种十分宽泛、自由环境。因而不会受到各种条条框框阻扰,可想而知,会
12、有多少新颖别致软件会诞生。但也有其两面性,血腥、暴力、情色方面程序和游戏如何控制正是留给Android难题之一。1.2.2 安卓系统编程语言在Android中,开发者可以使用Java作为编程语言来开发应用程序,也可以通过NDK使用C/C+作为编程语言来开发应用程序,也可使用SL4A来使用其她各种脚本语言进行编程(如:python、lua、tcl、php等等),尚有其她诸如:Qt(qt for android)、Mono(mono for android)等某些知名编程框架也开始支持Android编程,甚至通过MonoDroid,开发者还可以使用C#作为编程语言来开发应用程序。此外,google
13、还在特别发布了针对初学者Android Simple语言,该语言类似Basic语言。而在网页编程语言方面,JavaScript,ajax,HTML5,jquery、sencha、dojo、mobl、PhoneGap等等都已经支持Android开发。在Android系统底层方面,Android使用C/C+作为开发语言。而Android应用层开发,基本上所有是采用Java开发。但和咱们普通互联网上应用JAVA还是有些区别。此“JAVA”是google自己做一套实现来实现,和SUN底层是不太同样。但是对开发应用区别不大。1.3 安卓开发现状当前国内Android开发还是重要以应用开发为主,重要提成3
14、类:为公司开发应用、开发通用应用(放到Android Market或者其她App Market 销售)以及游戏开发(放到 Android Market 或者其她 App Market 销售)。第一类开发者普通身处规模较大公司,这些公司重要为自有品牌或者其她品牌设计手机或者平板电脑总体方案。除了依照需求对系统进行定制外,更多工作在于为这些系统编写定制应用。第二类开发者,普通处在创业型公司或者是独立开发者,她们赚钱方式重要是2种:为国外公司进行外包开发,或者通过Google 移动广告(AdMob)通过广告点击提成。而理论上通过付费下载形式来赚钱,当前国内鲜见成功者。第三类开发者,当前和第二类开发者
15、类似。下图是开发者提交应用和游戏数目所占比例图, 从中也可以看出应用开发数目远超游戏开发。图1.1 开发者提交应用和游戏比例图第二章 系统开发环境与有关技术2.1 系统开发环境Android 上层应用程序是用Java 语言开发,同步还需要基于Dalvik虚拟机,因此,Google公司推荐使用主流Java继承开发环境Eclipse。只有Eclipse还不够, 由于是使用 Java 语言进行开发, 还应当有由SUN公司提供Java SDK(其中涉及JRE:Java Runtime Environment)。此外,Android应用程序开发和Java开发有较大区别,因此还需要有Google提供And
16、roid SDK。同步,还需要在 Eclipse安装ADT,为 Android开发提供开发工具升级或者变更,是Eclipse 下开发工具升级下载工具。简言之,需要如下软件,才干搭建 Android 开发环境,从而进行Android应用程序开发。(1) Eclipse (2) JDK(3) Android SDK(4) ADT(Android Development Tools)2.2 系统开发软件简介2.2.1 Eclipse简介Eclipse 是一种开放源代码、基于Java可扩展开发平台。就其自身而言,它只是一种框架和一组服务,用于通过插件组件构建开发环境。幸运是,Eclipse 附带了一种
17、原则插件集,涉及Java开发工具(Java Development Kit,JDK)。 虽然大多数顾客很乐于将 Eclipse 当作 Java 集成开发环境(IDE)来使用,但 Eclipse 目的却不但限于此。Eclipse 还涉及插件开发环境(Plug-in Development Environment,PDE),这个组件重要针对但愿扩展 Eclipse 软件开发人员,由于它容许她们构建与 Eclipse 环境无缝集成工具。由于 Eclipse 中每样东西都是插件,对于给 Eclipse 提供插件,以及给顾客提供一致和统一集成开发环境而言,所有工具开发人员都具备同等发挥场合。 这种平等和
18、一致性并不但限于 Java 开发工具。尽管 Eclipse 是使用 Java 语言开发,但它用途并不限于 Java 语言;例如,支持诸如 C/C+ 和 COBOL 等编程语言插件已经可用,或预测将会推出。Eclipse框架还可用来作为与软件开发无关其她应用程序类型基本,例如内容管理系统。2.2.2其她软件简介(1)JDKJDK(Java Development Kit)是Sun Microsystems针对Java开发员产品。自从Java推出以来,JDK已经成为使用最广泛Java SDK。JDK 是整个Java核心,涉及了Java运营环境,Java工具和Java基本类库。JDK是学好Java第
19、一步。而专门运营在x86平台Jrocket在服务端运营效率也要比Sun JDK好诸多。从SUNJDK5.0开始,提供了泛型等非常实用功能,其版本也不断更新,运营效率得到了非常大提高。(2) Android SDKSDK:(software development kit)软件开发工具包。被软件开发工程师用于为特定软件包、软件框架、硬件平台、操作系统等建立应用软件开发工具集合。 因而,Android SDK 指既是Android专属软件开发工具包。(3)ADT(Android Development Tools)当前Android开发所用开发工具是Eclipse,在Eclipse编译IDE环境中
20、,安装ADT,为Android开发提供开发工具升级或者变更,简朴理解为在Eclipse下开发工具升级下载工具。 2.3安卓环境搭建2.3.1 软件下载准备分别下载 JDK、Eclipse、Android SDK,并一方面解压Eclipse完毕安装。2.3.2 JDK安装一方面按提示完毕SDK安装,然后设立环境变量(非必要)。1.我电脑-属性-高档-环境变量-系统变量中添加如下环境变量: 2.JAVA_HOME值为:E:AndroidJavajdk1.6.0_21(我所安装JDK目录) 3.CLASSPATH值:.;%JAVA_HOME%libtools.jar;%JAVA_HOME%libdt
21、.jar;%JAVA_HOME%bin;4.Path:在开始追加 %JAVA_HOME%bin;安装完毕之后,检查JDK与否安装成功。打开cmd窗口,输入java version 查看JDK版本信息。浮现下面画面表达安装成功了,如图2-1: 图2-1 安卓环境设立JDK效果测试图2.3.3 Android SDK安装下载完毕后解压到任意途径运营SDK Setup.exe,点击Available Packages。选取但愿安装SDK及其文档或者其他包,按需点击下面选项(开始下载安装所选包 )在顾客变量中新建PATH值为:Android SDK中tools绝对途径(本机为D:AndroidDeve
22、lopandroid-sdk-windowstools)。 完毕按“拟定”后,重新启动计算机。重启计算机后来,进入cmd命令窗口,检查SDK是不是安装成功。 运营 android h 浮现参数选取,表白安装成功。2.3.4 ADT安装打开 Eclipse,进入菜单中 Help - Install New Software 点击Add.按钮,弹出对话框规定输入Name和Location:Name自己随便取,Location输入。拟定返回后,在work with后下拉列表中选取咱们刚才添加ADT,点击下面浮现Developer Tools,展开它会有Android DDMS和Android Dev
23、elopment Tool,勾选她们,然后按环节完毕。完毕之后:选取Window Preferences. 在左边面板选取Android,然后在右侧点击Browse.并选中SDK途径,本机为: E:Androidandroid-sdk-windows点击Apply。配备完毕。 2.3.5 创立AVD为使Android应用程序可以在模仿器上运营,必要创立AVD。1、在Eclipse中。选取Windows Android SDK and AVD Manager 2、点击左侧面板Virtual Devices,再右侧点击New 3、填入Name,选取TargetAPI,SD Card大小任意,Ski
24、n随便选,Hardware当前保持默认值 4、点击Create AVD即可完毕创立AVD 综上一切完毕后安卓环境搭建完毕。2.4 系统开发编程语言简介Java是一种简朴,跨平台,面向对象,分布式,解释,健壮安全,构造中立,可移植,性能很优秀多线程,动态语言。Java 编程语言风格十分接近C、C+语言。Java是一种纯面向对象程序设计语言,它继承了 C+ 语言面向对象技术核心,Java舍弃了C +语言中容易引起错误指针(以引用取代)、运算符重载(operator overloading)、多重继承(以接口取代)等特性,增长了垃圾回收器功能用于回收不再被引用对象所占据内存空间,使得程序员不用再为内
25、存管理而担忧。在 Java SE 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全枚举、不定长参数和自动装/拆箱等语言特性。 Java 不同于普通编译执行计算机语言和解释执行计算机语言。它一方面将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上虚拟机来解释执行字节码,从而实现了“一次编译、处处执行”跨平台特性。但是,每次编译执行需要消耗一定期间,这同步也在一定限度上减少了 Java 程序运营效率。但在 J2SE 1.4.2 发布后,Java 执行速度有了大幅提高。与老式程序不同,Sun 公司在推出 Java 之际就将其作为一种开
26、放技术。全球数以万计 Java 开发公司被规定所设计 Java 软件必要互相兼容。“Java 语言靠群体力量而非公司力量”是 Sun 公司标语之一,并获得了广大软件开发商认同。这与微软公司所倡导注重精英和封闭式模式完全不同。 Sun 公司对 Java 编程语言解释是:Java 编程语言是个简朴、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态语言。 Java 平台是基于 Java 语言平台。 Java特点:1.平台无关性 平台无关性是指Java能运营于不同平台。Java引进虚拟机 原理,并运营于虚拟机,实现不同平台Java接口之间。使用Java编写程序能在世界范畴内
27、共享。Java数据类型与 机器无关,Java虚拟机(Java Virtual Machine)是建立在硬件和操作系统之上,实现Java二进制代码解释执行功能, 提供于不同平台接口。 2.安全性 Java编程类似C+,学习过C+读者将不久掌握Java精髓。Java舍弃了C+指针对存储器地址直接操作,程序运营时,内存由操作系统分派,这样可以避免病毒通过指针侵入系统。Java对程序提供了安全管理器,防止程序非法访问。 3.面向对象 Java吸取了C+面向对象概念,将数据封装于类中,运用类长处,实现了程序简洁性和便于维护性。类封装性、继承性等关于对象特性,使程序代码只需一次编译,然后通过上述特性重复运
28、用。程序员只需把重要精力用在类和接口设计和应用上。Java提供了众多普通对象类,通过继承即可使用父类办法。在Java中,类继承关系是单一非多重,一种子类只有一种父类,子类父类又有一种父类。Java提供Object类及其子类继承关系犹如一棵倒立树形,根类为Object类,Object类功能强大,经常会使用到它及其他派生子类。 4.分布式 Java建立在扩展TCP/IP网络平台上。库函数提供了用HTTP和FTP合同传送和接受信息办法。这使得程序员使用网络上文献和使用本机文献同样容易。 5.健壮性 Java致力于检查程序在编译和运营时错误。类型检查协助检查出许多开发初期浮现错误。Java自己操纵内存
29、减少了内存出错也许性。Java还实现了真数组,避免了覆盖数据也许,这些功能特性大大提高了开发Java应用程序周期。并且Java还提供了Null指针检测、数组边界检测、异常出口、Byte code校验等功能。 6.解释型 咱们懂得C,C+等语言,都是针对CPU芯片进行编译,生成机器代码,该代码运营就和特定CPU关于。Java不像C或C+,它不针对CPU芯片进行编译,而是把程序编译成称为字节码一种“中间代码”。字节码是很接近机器码文献,可以在提供了java虚拟机(JVM)任何系统上被解释执行。 7.动态 JAVA程序基本构成单元就是类,有些类是自己编写,有些是从类库中引入,而类又是运营时动态装载,
30、这就使得Java可以在分部环境中动态维护程序及分类,而不像C+那样,没档期类库升级后来,如果想让程序具备新类库提供功能,就需要修改程序,重新编译。第三章 系统需求分析及概要设计3.1 系统需求该系统是一种基于学校选课系统针对学生手机客户端。它是为本软件持有者提供对选课系统某些功能进行基本操作。它涉及成绩查询,课表查询,本学期所选课程查询,学籍查询,考试信息查询,修改密码,选课等操作。本软件为在校学生以便快捷使用学校选课系统提供一种途径。3.2 可行性分析通过对学校选课系统整体研究分析,本学校选课系统不提供对外接口,因此不能独立存在,只能依附于选课系统jsp页面。通过对选课系统http祈求解决研
31、究发现,只要提供对的参数,系统后台servlet会返回相应Xml或Html页面。通过对返回数据解决,基本可以实现上述功能。3.3 系统概要设计3.3.1 系统功能模块阐明(1)登录模块:作为系统启动后第一种界面,其中涉及顾客名密码输入(其中顾客名为学生学号)。登录成功后自动保存顾客名与密码,有助于提高顾客体验。最后提供服务器验证信息返回提示,如果验证通过提示后跳转页面,如果失败则提示重新登录。(2)系统主界面:顾客登录后跳转到此界面,该界面用标签方式同步加载3个页面在手机,顾客可通过下方按钮选取当前需要界面,提高手机屏幕所显示信息量,于软件运营速度。(3)数据解析模块:用于解决服务器返回数据。
32、(4)数据下载模块:运用HTTP祈求接受返回数据3.3.2 系统功能构造图在程序设计分析基本上,结合实际状况,得出本程序功能模块构造图。在构造图中涉及了功能模块表达及其中某些功能实现原理。1、总体设计选课系统课表查询课程查询成绩查询学籍查询选课修改密码一方面是一种总功能模块构造图,其中涉及了系统设计时总体功能概括,如图3.1。图 3.1 整体功能示意2、系统流程图跟据需求,程序流程如下:顾客登录后加载主框架,通过框架加载惯用查询页面与服务器授权才干使用查询页面,如选课,选课查询,考试查询等。整体流程如图3-2.。学生选课系统登录主界面惯用查询授权查询关于/退出课表查询课程查询成绩查询学籍信息修
33、改密码选课考试信息查询图 3.2 软件流程3、登录模块设计学生选课系统登录生成URL判断登录状态HttpDownloader返回XML验证数据解析XML数据返回验证数据UI线程新开线程登录成功并跳转01登录模块由于要在网络上取验证数据,所耗时间不拟定,为不使主界面在验证时浮现假死现象,因此必要新开线程,和UI所在线程分离,实现异步登录。详细流程如图3-3图 3-3 登录数据流程第四章 系统详细设计4.1 登录功能与实现4.1.1 登录界面本界面采用线性布局LinearLayout将标签,文本框,按钮,选项框组织排列。值得注意是这里顾客名输入框使用了AutoCompleteTextView控件而
34、不是普通EditText,这样做是为了使程序可以使用保存下顾客名密码,并且在开始输入时可以提示顾客。这样做可以减少顾客重复输入,有助提高软件可操作性。一方面建立好Android工程,在工程下res/layout下建立一种名为Login空xml文献。然后按照设计将布局完毕。成果如下图4-1所示。图4-1 登录界面然后在工程src目录下所相应Activity中创立控件,并用findViewById()办法得到所创立控件ID并转换成相应控件,实当代码如下:cardNumAuto = (AutoCompleteTextView) findViewById(R.id.cardNumAuto);passw
35、ordET = (EditText) findViewById(R.id.passwordET);logBT = (Button) findViewById(R.id.logBT);sp = this.getSharedPreferences(passwordFile,MODE_PRIVATE);savePasswordCB = (CheckBox) findViewById(R.id.savePasswordCB);savePasswordCB.setChecked(true);cardNumAuto.setThreshold(1);passwordET.setInputType(Input
36、Type.TYPE_CLASS_TEXT| InputType.TYPE_TEXT_VARIATION_PASSWORD);其中savePassword为多选框,只有这个值为true时才会保存密码。当顾客登录过之后,下次登录会在输入第一种字符时开始提示顾客。顾客名密码保存使用SharedPreferences,Android自带微型数据存储类,SharedPreferences保存数据,其背后是用xml文献存储数据,文献存储在/data/data/shared_prefs目录下。其中数据数据适配器实当代码如下:new TextWatcher() public void onTextChange
37、d(CharSequence 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,android.R.layout.simple_dropdown_item_1line,allUserName);cardNumAuto.setAdapter(adapt
38、er);public void beforeTextChanged(CharSequence s,int start,int count,int after) public void afterTextChanged(Editable s) passwordET.setText(sp.getString(cardNumAuto.getText().toString(),);4.1.2 登录按钮监听器当顾客名密码输入完毕点击登录将会执行登录操作,因此,必要给登录按钮添加监听器,用来监听点击事件。详细流程为,得到顾客输入顾客名和密码,并新开线程。并在用提示框告知顾客当前正在验证顾客信息。详细实当代
39、码如下:logBT.setOnClickListener(new OnClickListener() public 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(正
40、在登陆服务器,请稍后.);mDialog.show();Thread loginThread = new Thread(new LoginThread();loginThread.start(););4.1.3 新开线程监听器绑定之后,在顾客点击登录按钮时将会新开一种线程,所有验证中操作所有在新线程中执行。新开线程重要用于发送http祈求并接受验证信息,之后告知页面显示登录成果实当代码如下所示: class LoginThread implements Runnable public void run() String username = cardNumAuto.getText().toSt
41、ring();String password = passwordET.getText().toString();ArrayList 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,passw
42、ordStr).commit();msg.what = 0; handler.sendMessage(msg);新开线程又包括几项对数据解决工作,以及对返回解决成果,并对当前页面某些操作。4.1.4 提交验证信息handler为接受返回验证信息并在界面显示登录成果,鉴于本学校服务器返回验证信息为一XML文献,解析后用泛型ArrayList存储,其中第一条为顾客名密码验证信息,返回1为验证不通过,返回0为通过,并附加某些顾客基本数据作为之后操作参数。其中http祈求URL与数据解决实当代码如下:private ArrayList loginServer(String username,Strin
43、g password) ArrayList userStr=null; String userName=username; String passWord=password;String path=127.0.0.1:8080/webdu /loginservlet?action=1&ucode=+userName+&upwd=+passWord+&utype=S;path = path.replaceAll(s*,); HttpDownloader httpdownloader = new HttpDownloader();String json = new String( httpdown
44、loader.download(path);try userStr = Method.xmlParse( json);catch (Exception e) return userStr;由于在Android中,在输入完毕后自动添加上一种空格,但http祈求URL中,服务器接受时没有控制,因此在这里得对生成URL进行解决,path = path.replaceAll(s*,)为去掉字符串中所有空格。该办法返回一种ArrayList,这个ArrayList是可变长数组,为以便返回数据可操作性。4.1.5 Activity响应判断将服务器返回数据解析后,咱们就懂得了这次登录操作中究竟有无通过服务器
45、验证,但是在新线程中下载解析后数据咱们无法直接在Activity中使用。因此当前Activity必要在新线程执行结束前处在等待状态,并且随时准备响应。新开线程与Activity不处在同一线程,不能直接对Activity进行操作。因此这里必要有一种Handler来接受新线程发送数据,并用此数据配合主线程更新Activity。前面新开线程中,咱们判断了服务器返回值与否为0,并为一种状态量设立了值,这个值就是Handler所接受值。通过新线程值来控制UI更新,实当代码如下:Handler handler = new Handler()public void handleMessage(Message
46、 msg) switch(msg.what) case 0: mDialog.cancel(); Toast.makeText(getApplicationContext(),登录成功,Toast.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(),账户或密码错误,