1、基于Android教务信息管理系统 摘 要:针对现在高校教务信息系统不足,提出一个基于Android教务信息查询管理系统,它不仅能够帮助师生查询常见信息,同时系统也提供学生选课、上课提醒等实用辅助功效,为本校大学生使用教务系统提供便利。该系统充足利用Android平台功效特点,采取Http请求方法完美实现手机端和服务器数据通信,利用jsoup和sax等方法进行数据解析处理,同时也对界面进行精心设计,增强用户体验。关键词:Android;教务信息管理系统;手机用户端;UIAcademic Information Management System based on Android Abstrac
2、t: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 fun
3、ctions, 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
4、 also 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安卓环境搭
5、建52.3.1 软件下载准备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
6、.2.3经过WebView显示信息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、分关键信息,有时会掉一个寻呼机,有时会掉一个电话本或笔记本什么,这些“信息载体”可能包含着关键个人信息。怎样将这些有用信息存放起来避免忘记或丢失,怎样对这些有用信息进行有序地组织、管理以资对生活决议提供帮助,这正是信息管理软件要处理问题。进入二十一世纪以来,无所不在计算将打破传统意义上计算机概念:使用更方便、移动更轻易、功效更多样化多种含有计算机功效设备大量出现,而且在需要时,能够随时经过无线方法连接到移动数据通信网络中,方便高效地交换信息和取得多种服务。这种设备大家称之为无线设备。移动设备最根本特征是移动性,即能够利用无线电波、微波或红外线等传输介质许可通信中设备在一定范围内自由移动,其位置
8、不受束缚,从而实现通信双方最少有一方在移动中进行信息传输和交换目标。移动设备从产生到现在历史并不长,然而其发展速度却远远超出大家预料。现现在,移动设备大行其道,全球有超出十亿部移动电话正在被使用,而且这个数目正在逐步增加。在除美国之外每个发达国家,拥有手机人数比拥有计算机人数更多。而现在,伴随移动设备越来越普及及移动硬件提升,移动设备功效越来越完善,移动设备系统平台也日渐火热起来。现在中国最常见移动开发平台有Symbian,iPhone,Windows Phone 和Android。现在中国外全部有很多Android 系统用户。自从第一季度,Android在全球份额首次超出Symbian,跃居
9、全球第一。截止2月据,Android占据全球智能手机操作系统市场52.5%份额,中国市场拥有率为68.4%。1考虑到现在手机系统发展现实状况,和Android平台系统本身所拥有优势。所以,基于安卓平台开发一款手机应用软件含有较大意义和可行性。1.2 安卓平台介绍Android一词本义指“机器人”,同时也是谷歌于11月5日宣告基于Linux平台开源手机操作系统名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造真正开放和完整移动软件。现在,最新版本为Android 4.0 Ice Cream Sandwich (冰激凌三明治) 和还在测试中Android 5.0Jel
10、ly Bean(果冻豆)。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#作为编程语言来开发应用程序。另外,谷
13、歌还在尤其公布了针对初学者Android Simple语言,该语言类似Basic语言。而在网页编程语言方面,JavaScript,ajax,HTML5,jquery、sencha、dojo、mobl、PhoneGap等等全部已经支持Android开发。在Android系统底层方面,Android使用C/C+作为开发语言。而Android应用层开发,基础上全部是采取Java开发。但和我们通常互联网上应用JAVA还是有些区分。此“JAVA”是谷歌自己做一套实现来实现,和SUN底层是不太一样。不过对开发应用区分不大。1.3 安卓开发现实状况现在中国Android开发还是关键以应用开发为主,关键分成3
14、类:为企业开发应用、开发通用应用(放到Android Market或其它App Market 销售)和游戏开发(放到 Android Market 或其它 App Market 销售)。第一类开发者通常身处规模较大企业,这些企业关键为自有品牌或其它品牌设计手机或平板电脑总体方案。除了依据需求对系统进行定制外,更多工作在于为这些系统编写定制应用。第二类开发者,通常处于创业型企业或是独立开发者,她们盈利方法关键是2种:为国外企业进行外包开发,或经过谷歌 移动广告(AdMob)经过广告点击分成。而理论上经过付费下载形式来盈利,现在中国鲜见成功者。第三类开发者,现在和第二类开发者类似。下图是开发者提交
15、应用和游戏数目所占百分比图, 从中也能够看出应用开发数目远超游戏开发。图1.1 开发者提交应用和游戏百分比图第二章 系统开发环境和相关技术2.1 系统开发环境Android 上层应用程序是用Java 语言开发,同时还需要基于Dalvik虚拟机,所以,谷歌企业推荐使用主流Java继承开发环境Eclipse。只有Eclipse还不够, 因为是使用 Java 语言进行开发, 还应该有由SUN企业提供Java SDK(其中包含JRE:Java Runtime Environment)。另外,Android应用程序开发和Java开发有较大区分,所以还需要有谷歌提供Android SDK。同时,还需要在
16、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 附带了一个标准插件集,包含Java开发工具(J
17、ava Development Kit,JDK)。 即使大多数用户很乐于将 Eclipse 看成 Java 集成开发环境(IDE)来使用,但 Eclipse 目标却不仅限于此。Eclipse 还包含插件开发环境(Plug-in Development Environment,PDE),这个组件关键针对期望扩展 Eclipse 软件开发人员,因为它许可她们构建和 Eclipse 环境无缝集成工具。因为 Eclipse 中每样东西全部是插件,对于给 Eclipse 提供插件,和给用户提供一致和统一集成开发环境而言,全部工具开发人员全部含有相同发挥场所。 这种平等和一致性并不仅限于 Java 开发工
18、具。尽管 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第一步。而专门运行在x86平台Jro
19、cket在服务端运行效率也要比Sun JDK好很多。从SUNJDK5.0开始,提供了泛型等很实用功效,其版本也不停更新,运行效率得到了很大提升。(2) Android SDKSDK:(software development kit)软件开发工具包。被软件开发工程师用于为特定软件包、软件框架、硬件平台、操作系统等建立应用软件开发工具集合。 所以,Android SDK 指既是Android专属软件开发工具包。(3)ADT(Android Development Tools)现在Android开发所用开发工具是Eclipse,在Eclipse编译IDE环境中,安装ADT,为Android开发提供
20、开发工具升级或变更,简单了解为在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.jar;%JAVA_HOME%bin;4.
21、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:AndroidDevelopandroid-sdk-windows
22、tools)。 完成按“确定”后,重新开启计算机。重启计算机以后,进入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 Development Tool,勾选她们,然后按
23、步骤完成。完成以后:选择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大小任意,Skin随便选,Hardware现在保持默认值 4
24、、点击Create AVD即可完成创建AVD 综上一切完成后安卓环境搭建完成。2.4 系统开发编程语言介绍Java是一个简单,跨平台,面向对象,分布式,解释,健壮安全,结构中立,可移植,性能很优异多线程,动态语言。Java 编程语言风格十分靠近C、C+语言。Java是一个纯面向对象程序设计语言,它继承了 C+ 语言面向对象技术关键,Java舍弃了C +语言中轻易引发错误指针(以引用替换)、运算符重载(operator overloading)、多重继承(以接口替换)等特征,增加了垃圾回收器功效用于回收不再被引用对象所占据内存空间,使得程序员不用再为内存管理而担忧。在 Java SE 1.5 版
25、本中,Java 又引入了泛型编程(Generic Programming)、类型安全枚举、不定长参数和自动装/拆箱等语言特征。 Java 不一样于通常编译实施计算机语言和解释实施计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依靠多种不一样平台上虚拟机来解释实施字节码,从而实现了“一次编译、四处实施”跨平台特征。不过,每次编译实施需要消耗一定时间,这同时也在一定程度上降低了 Java 程序运行效率。但在 J2SE 1.4.2 公布后,Java 实施速度有了大幅提升。和传统程序不一样,Sun 企业在推出 Java 之际就将其作为一个开放技术。全球数以万计 Java 开发企业
26、被要求所设计 Java 软件必需相互兼容。“Java 语言靠群体力量而非企业力量”是 Sun 企业口号之一,并取得了广大软件开发商认同。这和微软企业所提倡重视精英和封闭式模式完全不一样。 Sun 企业对 Java 编程语言解释是:Java 编程语言是个简单、面向对象、分布式、解释性、健壮、安全和系统无关、可移植、高性能、多线程和动态语言。 Java 平台是基于 Java 语言平台。 Java特点:1.平台无关性 平台无关性是指Java能运行于不一样平台。Java引进虚拟机 原理,并运行于虚拟机,实现不一样平台Java接口之间。使用Java编写程序能在世界范围内共享。Java数据类型和 机器无关
27、,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自己操纵内存降低了内存犯错可能性。Java还
29、实现了真数组,避免了覆盖数据可能,这些功效特征大大提升了开发Java应用程序周期。而且Java还提供了Null指针检测、数组边界检测、异常出口、Byte code校验等功效。 6.解释型 我们知道C,C+等语言,全部是针对CPU芯片进行编译,生成机器代码,该代码运行就和特定CPU相关。Java不像C或C+,它不针对CPU芯片进行编译,而是把程序编译成称为字节码一个“中间代码”。字节码是很靠近机器码文件,能够在提供了java虚拟机(JVM)任何系统上被解释实施。 7.动态 JAVA程序基础组成单元就是类,有些类是自己编写,有些是从类库中引入,而类又是运行时动态装载,这就使得Java能够在分部环境
30、中动态维护程序及分类,而不像C+那样,没档期类库升级以后,假如想让程序含有新类库提供功效,就需要修改程序,重新编译。第三章 系统需求分析及概要设计3.1 系统需求该系统是一个基于学校选课系统针对学生手机用户端。它是为本软件持有者提供对选课系统部分功效进行基础操作。它包含成绩查询,课表查询,本学期所选课程查询,学籍查询,考试信息查询,修改密码,选课等操作。本软件为在校学生方便快捷使用学校选课系统提供一个路径。3.2 可行性分析经过对学校选课系统整体研究分析,本学校选课系统不提供对外接口,所以不能独立存在,只能依附于选课系统jsp页面。经过对选课系统http请求处理研究发觉,只要提供正确参数,系统
31、后台servlet会返回对应Xml或Html页面。经过对返回数据处理,基础能够实现上述功效。3.3 系统概要设计3.3.1 系统功效模块说明(1)登录模块:作为系统开启后第一个界面,其中包含用户名密码输入(其中用户名为学生学号)。登录成功后自动保留用户名和密码,有利于提升用户体验。最终提供服务器验证信息返回提醒,假如验证经过提醒后跳转页面,假如失败则提醒重新登录。(2)系统主界面:用户登录后跳转到此界面,该界面用标签方法同时加载3个页面在手机,用户可经过下方按钮选择目前需要界面,提升手机屏幕所显示信息量,于软件运行速度。(3)数据解析模块:用于处理服务器返回数据。(4)数据下载模块:利用HTT
32、P请求接收返回数据3.3.2 系统功效结构图在程序设计分析基础上,结合实际情况,得出本程序功效模块结构图。在结构图中包含了功效模块表示及其中部分功效实现原理。1、总体设计选课系统课表查询课程查询成绩查询学籍查询选课修改密码首先是一个总功效模块结构图,其中包含了系统设计时总体功效概括,图3.1。图 3.1 整体功效示意2、系统步骤图跟据需求,程序步骤以下:用户登录后加载主框架,经过框架加载常见查询页面和服务器授权才能使用查询页面,如选课,选课查询,考试查询等。整体步骤图3-2.。学生选课系统登录主界面常见查询授权查询相关/退出课表查询课程查询成绩查询学籍信息修改密码选课考试信息查询图 3.2 软
33、件步骤3、登录模块设计学生选课系统登录生成URL判定登录状态HttpDownloader返回XML验证数据解析XML数据返回验证数据UI线程新开线程登录成功并跳转01登录模块因为要在网络上取验证数据,所耗时间不确定,为不使主界面在验证时出现假死现象,所以必需新开线程,和UI所在线程分离,实现异步登录。具体步骤图3-3图 3-3 登录数据步骤第四章 系统具体设计4.1 登录功效和实现4.1.1 登录界面本界面采取线性布局LinearLayout将标签,文本框,按钮,选项框组织排列。值得注意是这里用户名输入框使用了AutoCompleteTextView控件而不是一般EditText,这么做是为了
34、使程序能够使用保留下用户名密码,而且在开始输入时能够提醒用户。这么做能够降低用户反复输入,有助提升软件可操作性。首先建立好Android工程,在工程下res/layout下建立一个名为Login空xml文件。然后根据设计将布局完成。结果以下图4-1所表示。图4-1 登录界面然后在工程src目录下所对应Activity中创建控件,并用findViewById()方法得到所创建控件ID并转换成对应控件,实现代码以下:cardNumAuto = (AutoCompleteTextView) findViewById(R.id.cardNumAuto);passwordET = (EditText)
35、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(InputType.TYPE_CLASS_TE
36、XT| InputType.TYPE_TEXT_VARIATION_PASSWORD);其中savePassword为多选框,只有这个值为true时才会保留密码。当用户登录过以后,下次登录会在输入第一个字符时开始提醒用户。用户名密码保留使用SharedPreferences,Android自带微型数据存放类,SharedPreferences保留数据,其背后是用xml文件存放数据,文件存放在/data/data/shared_prefs目录下。其中数据数据适配器实现代码以下:new TextWatcher() public void onTextChanged(CharSequence s,
37、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(adapter); public void
38、 beforeTextChanged(CharSequence s, int start, int count,int after) public void afterTextChanged(Editable s) passwordET.setText(sp.getString(cardNumAuto.getText().toString(), );4.1.2 登录按钮监听器当用户名密码输入完成点击登录将会实施登录操作,所以,必需给登录按钮添加监听器,用来监听点击事件。具体步骤为,得到用户输入用户名和密码,并新开线程。并在用提醒框通知用户现在正在验证用户信息。具体实现代码以下:logBT.se
39、tOnClickListener(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().toString();Stri
41、ng 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, passwordStr).c
42、ommit();msg.what = 0; handler.sendMessage(msg);新开线程又包含几项对数据处理工作,和对返回处理结果,并对目前页面部分操作。4.1.4 提交验证信息handler为接收返回验证信息并在界面显示登录结果,鉴于本学校服务器返回验证信息为一XML文件,解析后用泛型ArrayList存放,其中第一条为用户名密码验证信息,返回1为验证不经过,返回0为经过,并附加部分用户基础数据作为以后操作参数。其中http请求URL和数据处理实现代码以下:private ArrayList loginServer(String username, String passwor
43、d) 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( httpdownloader.
44、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 ms
46、g) 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(), 账户或密码错误,
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100