基于安卓现场理货移动平台设计与开发_第1页
基于安卓现场理货移动平台设计与开发_第2页
基于安卓现场理货移动平台设计与开发_第3页
基于安卓现场理货移动平台设计与开发_第4页
基于安卓现场理货移动平台设计与开发_第5页
免费预览已结束,剩余43页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

绪 研究的背景及意 集装箱堆场现场理货系统现 国内外研究现 研究内 现场理货系统设计与分 理货作业流程分 理货作业平台功能划 现场理货系统架构设 E-R模 数据库设 数据流程设 功能逻辑设 现场理货平台实 开发技 服务技 服务器端设 主要功能模 本章小 总结与展 绪随着世界经济进程的加速,以及我国外贸经济体系的高速,集装箱在航运体系中占有的比例逐年增长致使集装箱业务在港口业务中的利润逐年增长。从本世纪初期开始,全球各大港口间的集装箱流通率增长迅速。到2003年全球国际集装箱量为790万8.2%,200487701快了了信息产业高速推进,并带领一大批科研成果迅速转化为生产力,中国集装箱堆场己经步入数字化时代。近年来,中国集装箱堆场在方面投资极大,从最基本的无纸化办公到整个作业线的实时管理,从无线通讯到图像识别、射频技术、S,许多刚走出的新技术在集装箱堆场找到了用武之地。而船舶的集装箱装卸还处于人工操作的状态3]。,集装箱装卸作业代表着世界航运界最先进的生产力,集装箱船舶在港口的装卸效率直接影响到船舶公司和集装箱港口的市场竞争力。由于涉及到等多方部门所以在业务操作上更加复杂。堆场上的理货操作员一天的工作量也很大,每天面对庞大数量的需要进行各种查验的集装箱,付出辛勤的汗水。由于箱子数量多,很多操作不愿意采用计算机系统进行数据统计,而是采用传统的纸质方式记录当前任务的完成情况,在作业完成后再到后方计算机上进行数据的录入和汇总操作。这样做其次书写在纸质上的数据的准确率无法保证。人总是会犯错的,一时的疏忽可能会对整个到操作自身的安全问题。现代化的集装箱堆场在安全方面和从前的传统堆场相比已经进步全隐患。如果遇到大规模性天气或是严寒酷暑,对堆场的作业环境也是很大的。所以当前的现代化堆场使用手持机终端进行信息处理的也有许多。手持机的应用在一定程度上提升了堆场的作业效率,操作员可以在工作现场进行实时的信息确认与更新,相较于采用纸质记录的堆场已经先进许多。但是手持终端有着许多的局限性。首先,手持终端售价高昂。一台国产持终端往往售价几千元,而国外品牌持终端的价格甚至要突破万元。如果为了配合堆场的处理量而一定数量持终端将产生开支。其次,手持终端有一定的局限性。浏览了世面在售手持终端,大多数终端使用的都是封闭的操作系统,用户在开发系统时也必须使用厂商提供的指定的开发工具,但是有的厂商不提供虚拟机,造成开发必须使用实机调试,给开发工作造成许多。在堆场发展的过程中,必然将对现有的设备进行更新。如果手持机厂商不再提供技术支持,堆场将不得不花重金重新雇佣开发重新开发相关,造成大量的浪费。手持机唯一的优点是耐摔及抗震性,但是为了获得这一性能,手持机往往被设计得非常笨重,这就对操作的携带造成了许多麻烦,原本方便的功能可能就由于重量的原因而被弃之不用。介于以上两点原因,非常有必要开发一个基于安卓的现场理货移动平台。本平台将依托堆场现有的信息化平台,将理货作业的流程无缝嵌入到当前系统中,实现信息交互低延迟、操作简单、信息处理准确快捷等目标。理货作业可以极为便捷地使用手中的安卓系统智能实时查询及修改理货计划,在作业完成后可以及时更新理货状态,从而使调度中心能够更加高效地分配各种堆场机械配合作业。计算机系统能够在很大程度上避免人工书写造成的错误,程序内置了校验功能,将对可能发生输入错误的区域进行校验,并在数据提交前进行校验。由于应用基于安卓平台,使应用的可移植性大大增强,安卓设备的淘汰对安卓系统上的应用本身的影响是非常小的。安卓系统在最近的版本中已经强化了企业管理功能,能够对用户的操作按策略进行严格的限制,从而满足堆场的安全要求。由于采用安卓系统,用户体验可以保持一致,这将减少堆场在培训方面的开支。现如今低价安卓已经铺天盖地,选择大屏安卓既能保证操作员的正确操作,也对于降低堆场运营成本起到了的作始采用自己的设备体系。也有的学者开着了这类研究。国内的研究主要有[6在1992年提出了在福州港集装箱管理信息系统的主要功能,当时的还比较简单,业务也不像现在这样繁忙,开放九十年代初,相较于之前,港口的业务数量激增,为了提高效率不得不使用信息化管理。[7]在2003了Bure出各种分布情况下对排队网络的改进思路,首次结合外高桥集装箱码头建立的作业线方式下的作业层集装箱码头物流网络节点配置,求取最优解。[8在2005年通过比较CTMS时CSMOS系统的优劣,并对现有系统取长补短提出了系统。[9]2005年结合采用了基于.NetB/SC/S的烟台港现有集装箱管理信息系统。它采用了三层架构使表达层、应用层、数据层完全分离,提高应用速度。,苗瑞,[10]运用BP神经网络未来的堆场集装箱数量,解决作业不均衡问题。魏众[11]在2007年提出了基于multi-agent的集装箱码头物流作业调度系统。[12]在2007年以港煤码头的物流信息化为研究背景,实现了公司煤炭的运、、装卸等作业流程的计算机记录与控制。主要采用信息资源规划以及企业架构规划。[13]在2009年提出了一种港口物流系统综合评价方法(层次分析法,环境资源管理),并对不同港口进行了比较分析。,井,何振威,钦[14]在2009年采用了无源RFID识别技术,增强了时的准确性和速度。[15]在2009年设计了基于WebService的外轮理货业务实现了PDA现场理货、报文处理、理货处理并进行了设计和分析操作。[16]在2011年对长春国际物流中心进行研究,构建了类似集装箱堆场的信息系统。引入第物流企业的分析和汇总。[17]在2011年研究了基于Oracle9的船舶调度管理,设备使用管理系统。[18]2013年以引航调度系统为例研究了各种安卓数据库同步技术,对这些数据同步技术进行对比,解决移动端月服务器同步问题。Ereng[19]提出任务的分配是由供应商、仓库、制造商的地理模型。teboom21]从多式联运角度系统的研究了未来全球各地港口物流将对经济产生如何深远的影响。Lapida22]提出了从创新物流新供应链集中管理角度研究新世纪物流管理系统规划以及思路。Creton.23提出了优化集装箱码头设计方法。l24i25研究了先到先服务的原则下,码头的泊位分配问题。研究内根据实际情况修改理货信息,确认无误后保存信息。系统收到确认之后将发布转提任务,及集卡的车载终端将显示出箱子的具置,箱子的基本信息,尺寸、箱号等。正面吊和集卡相互配合将集装箱运送到堆场指定的查验区,交由进行各种查验。查验完成后查验人或指运地、启运地进行查验,以确定实际与单证申报是否相符,有无错报、漏报、和伪报等情况,满足、征税、统计的需要;同时,查缉国家进物品。查验货物,应在规定的时间和场所进行。特殊缘由,事先报请同意,海关可以在其方便的时候进行查验操作,可以无视规定的时间进行突击检查。货物的收、发货人或其人利监督进行查验操作,同时也有义务并按的要求负责办理货物的搬移、拆装箱和查验货物的包装等工作。根据法律利及义务对可疑集装箱直接进行开验、复验或者提取货样。货物保管人应当到场作为人[4。的对象分,一般有进口集装箱查验和出口集装箱查验;按查验分,人工查验和机检查验。实施查验可以是彻底查验,也可以是。查验操作可以分为人工查验和设备查验。可以根据货物情况以及实际需要,确定具体的查验方式。货物的包装、标志和外观等状况进行验核;开箱查验是指将货物从集装箱、货柜车箱等箱原材料等不易搬运、移动。此外,还充分利用科技配合查验,如地磅和X光机等查验货物应于查验完毕后半个工作日内予以放行。查验过程中,发现有等事情的,将平台主要分为登陆模块、理货计划模块、理货程度确认模块、验箱程度确认模块。登陆模块主要负责对用户进行信息认证。随着集装箱装卸业务日趋成熟,围绕着集装箱堆场,船公司﹑国家检验检疫部门、、货主乃至各家公司之间的也越来越多。在提高装卸效率的需求下,各类新兴技术也在堆场崭露头角,这些新技术新系统的应用在提高了堆场的生产运营效率的同时也带来了很多安全方面的问题。以无线通信技术为例,现代堆场广泛采于802.11准无技术大方便堆场但时又来许多全患内部来看,为了操作方便而采用的控制技术,可能给服务器带来各种;用户间相互发送文件资料,发送带有附件的电子邮箱以及可移动存贮设备在各台电脑上的流转都有可能造成的大爆发和局域网间交叉。登陆模块就是要在一定程度上降低各种的访问,使整个服务都在一个安全的保护下运行。理货程度确认模块是整个系统中最重要的模块,主要控制理货程度的确认操作。模块主要负责从系统现有的数据中筛选出需要进行理货作业的集装箱,方便用户进行操作。另一个功能是协助用户在最短的时间内完成确认,降低重复输入修改所造成的人力浪费。图3.1为主要整个系统给工作流程。计划员在建立在场箱计划时先选择当前计划类型,然后选择当前集装箱并保存。理货操作员先录入箱号以查询当前集装箱是否在理货计划中,如果存在该集装箱则进一步查看理货计划,看是否存在理货计划,并根据实际情况新建或者修改理货信息。完成后进行一次确认并保存信息。现场作业员根据理货计划的先后顺序发布转提任务,理货操作员收到转提任务并把任务转发给正面吊以及集卡。集卡根据任务内容将集卡驾驶至指定的区域待命,待正面吊将集装箱取下并放在集卡上。集卡将集装箱运至指定的理货区域。理货负责将集装箱打开,查验按照要求对所需要查验的货物进行例行检查。所有操作完成后将没有问题的货物装回集装箱并有集卡和正面吊协同合作将集装箱运回堆场指定位置。作业流

保存建立在场箱计建立在场箱计查看理货查看理货修改理货 保存发布转提

接收转提

执行转提验验验理货确理货确发 任 执 任结E-RE-R模型主要展示了集装箱:箱号、箱型、尺寸、空中、设备交接单、场地位置。委托单位:单位、合同、联系人/。进场类别:进场形式、进场目的、特殊标记、货类、场地位置。进场计划:进场计划号、场位计划、设备交接单号、箱状态、交付条款、内外车队、内外贸。集装箱所对应的属性包括进场计划号,箱号,尺寸,箱型,状态,进场类别,特种箱标记,持箱人,箱主,箱重,场地位置,计划场位,船名,航次,提单号,铅封号,设备交接单号,内外贸,是否损坏,货名,交付条款,起运地点,委托单位,航线代码,收箱人,收箱单位,温度,记录日期,工号,卸船日期,出场计划,出口日期,出皮号,火车车次,出场日期,盘存统计日期,场地位置,是否锁箱,锁箱人,箱主修改日期,内外车队,标记,放箱单号,修改人,消极人,错场位,装箱时间,装箱理货员拆箱时间拆箱理货员,是否已发运抵,目的港,备注,进场船名,进场航次,进场提单,返回时间,取走时间,集港报文核对标记,进场车队,可否装箱。数据库设基于运行环境分析,设计数据表文件,结构如下。安卓现场理货移动库有四个数据文件构成,分别为进场计划信息表(ctn_plan)、理货状态(c_ctn_status)、理货类型(c_plantpe)、集装箱信息(cntainr)。由于数据库设计较长且繁琐,详细表格将在附录中呈现。3.1进场计划计划信息表2场144481118数据流程GPS箱位置3.5集装箱信息进场类进场类别进场集装集装箱信息进场计划进场计集装箱信息进场类进场类别进场集装集装箱信息进场计划进场计在场计理货在场计划特殊在外请验法木质验作业进3.6中林木有害生物随木质包装在全球扩散的风险;二是协调WTO成员制定的木质包装枕木、衬木等。第验货在贸易中也称为验货或者出口检验,是由独立于交易双方以外的第按委托方或者买家的要求,代表委托方或买家对供货质量及订货、购销合同中的其它相关内容进行检查验收的一项活动,目的是查验供货供货物是否满足订货合同的要3.7IPO3.2IPO图表IPO图(即模块号):HIPO图数据库设计文件输入部分输出部分3.3IPO图表IPO图(即模块号):HIPO图数据库设计文件输入部分处理描述输出部分集装箱3.4IPO图表IPO图(即模块号):HIPO图数据库设计文件输入部分处理描述输出部分3.5IPO图表IPO图(即模块号):HIPO图数据库设计文件输入部分处理描述输出部分3.6IPO图表IPO图(即模块号):HIPO图数据库设计文件模块名称:作业模输入部分处理描述输出部分作业情况相对应费用3.7IPO图表IPO图(即模块号):HIPO图数据库设计文件输入部分处理描述输出部分3.8IPO图表IPO图(即模块号):HIPO图数据库设计文件输入部分输出部分3.9IPO图表IPO图(即模块号):HIPO图数据库设计文件输入部分输出部分3.10IPO图表IPO图(即模块号):HIPO图数据库设计文件输入部分输出部分据Cys的统计数据显示,202统有5智的68.8%了2013至7.2至.3约10中80%卓。很字3是安卓平台向可穿戴设备发展的一年。手表、腕带、谷歌眼镜等等产品不再是厂商炫技的产物,而是在商店中实实在在能够买到的产品。这些设备给人们的生活带来的许多便利,同时拓宽了安卓设备的市场占有率。2013和费P经过央视后在人名心中留下的深刻的印象。自从苹果集成了识别后,安卓旗舰着C在移动支付越来越方便,所以对安全也不可同日而语。开发技本次开发使用InliJIDEA进行。作为目前公认的优秀的Java开发环境,也对其伸AndroidStudioJava开发工具Eclipse有着许多改进的地方。其主要特性有:基于Gradle的自动化组件反编译反以及应用签名特性。当然作为新兴的开发工具也有不足之处,例如不像eclipse是完全开源,IDEA还有商业版本。IDEAeclipse多年的积累相比。当然这些劣势将来会随着谷GradleApacheAntApacheMaven为概念的自动化构建工具计划。它有一套基于Groovy的特定领域语言来项目设置,而不是传统的XML。不像Maven定义了生命周期以及Ant的生成目标是基于组件的部分需求而生成,Gradle使用有向无环图(DAG)来决定哪个任务需要有限执行。Gradle被设计成给那些需要生成许多项目的构建使用,它通过智能地识别构建树种那些项目是的来进行增量构建,这样那些基于这些的部分就不需要GradleAnt的强大功能和可伸Maven的组件依赖管理,是一个更加有效率的构建方式。Gradle可以将构建、测试、发布、部署全部自动化,不仅仅可以用于程序还能用于生成静态页面以及说明文档。服务技WS是一个在网络上沟通两个电子设备的通信协议。它有一个由机器可读的格式做成的接WSSOAPHTTPXML序列。有两大类WSRESTWS,其主要目的是通过使用一系列无状态操作来操作代表网络资源的XML。几何WS,有一系列几何操作。WSDL是一个基于XML的接口描述语言,它被用于描述当前WS的功能。图4.1简单描述了一个标准WSDL的结构。WSDLWSDL描接服绑

4.1WebService结SOAP是一种用于在WS组成的计算机网络换结构化信息的协议。它依赖于XML信息于表达应用定义的数据类型的实力;RPC表示,它定义了一个协定,用于表示过程调用和应答;绑定,它定义了SOAP使用哪种协议交换信息。服务器端示、数据处理、以及数据管理功能进行物理性的。其中用的最广泛的是三层架构。多层架为不同的层次,开发者可以修改某一特定层而不是重写整个应型的三层架构主要由展示层、域逻辑层和数据层。三层架构可以独立进行升级从而更加快速地适应技术的发展及要数据数据层采用Oracle数据库进行搭建。Oracle是一个关系型数据库管理系统,它拥有许多优点,Oracle的数据库都向后兼容,降低了企业的许多迁移成本。Oracle拥有高可靠性的特点。本次使用Oracle为本系统服务,将会获得这些所有的优点。Powerbuilder编写的WebService作为中间应用,主要负责数据的收集及传递。Powerbuilder采用了大量的.NetIIS上进行部署。Powerbuilder也拥有引以为豪的数据窗口,可以方便的将数据进行可视化,方便用户查阅及修改。系统采用Powerbuilder独有的数据窗口进行编写,利用率其数据窗口操作的便捷性,方便地将数据从数据库中抽出并家在给用户。由于本平台的是WebService,所以将数据窗口隐藏在,构建不可视WebService方法,主要由以下三个方法构成。4.54.6主要功能说到理货最先要做的事还是要创建理货计划。理货计划是整个系统中非常重要的一个环节。该计划将伴随这个整个系统的运行。系统将呈现所有需要进行理货作业的在场集装箱信息。用户根据对以下字段进行判断:进场计划、箱号、计划号,以确保需要进行理货计划的集装箱准确无误。默认显示箱号、用户通过键入箱号的部分信息系统进行简单的模糊查询以返回完整的集装箱箱号作为结果。点击集装箱将会显示集装箱信息概览,用户可以很直观的了解被选中的集装箱的详细信息。数据通过ML进行传输。用户选择需要进行理货的集装箱并确认后,当前集装箱的信息将在本地被缓存,以便后续操作是直接调取,节省资源、服务器资源以及网络流量。图4.2是查验确认模块运行时的界面。程序的最上部分将显示输入框,供用户录入集装箱箱号信息。输入框对用户输入类型进行的限定,用户只能输入数字,这与堆场作业现状相符合。一般操作员都通过输入数字进行检索操作,以减少输入时间。4.511位的集装箱箱号中任意的几位数字便能从由于理货流程的复杂性,可能遇到集装箱多次进港、每个集装箱被复数次地进行查验操作、以及对同一集装箱内不同货物进行的查验操作,所以无法仅仅依赖一个就将集装箱定位。理货程度确认模块通过一个模块中选定的集装箱号、在场计划号、集装箱查验号这三个对当前理货计划中的集装箱进行唯一性判定,以确保当前理货计划中的集装箱是准确的。系统将呈现所有当前可用的理货程度包括框架动包装、全掏、不验、开门、半掏、不落箱半掏、不落箱全掏、不落箱开门、不落箱不验、全掏耙子、半掏耙子、半掏、全掏、框架不动包装、全人力全掏、机检出场、机检平台、机检落箱。操作根据计划要求选择正确的理货程度,并进行确认。应用将把数据以L的形式传送给服务器,服务器进行数据验证以及数据库操作,如果操作成功应用将给出提示,如果操作不成功,应用将给出具体的出错信息,如“验箱程度提交数据库时发生错误”、“未找到该箱子对应的查验任务”等等,以方便操作得到正确的反馈信息。中的集装箱列表后,系统将弹出图4.6所示的框供用户选择验箱程度。当用户再次通过点击选择了验箱程度后,系统将弹出图4.7的框,显示用户几步中选择的所有信息供用户进行确认。用户在确认无误之本章小本章主要撰写了对理货平台的实现。包括应用到平台的开发技术,Java、服务技术WebService、服务器端的设计包括Oracle数据库搭建以及使用PowerBuilder搭建基于ASP.net的WebService.通过对这些以上技术的整合,并经过对众多程序代码的摸索和创新最终构成了本总结与总本文主要设计与研究了基于安卓的现场理货移动平台,综合分析了理货作业在信息化时代需要的设计理念,融入了对于移动操作系统的支持,使得集装箱堆场现场理货作业系统对于用户更加友好,操作更加简便,减少港口企业对于在岗所需要付出的培训力度。主要内容有对于现有理货过程的分析,从许多方面提出现有理货作业在工作流上衔接的不足对于移动系统应用开发的理解,工程学交互对于移动应用开发的影响等。尝试使用目三层作,而是通过中间层的WebService进行数据库的操作,大大降低数据库在中所造成的安全性问题,提升堆场企业的。相较于传统工模式,当前的基于计算机和网络展要构建一个基于安卓的现场理货平台不简单,要让平台投入使用更加,要牵扯到客户网络的要求较高,缺少异步缓存操作,需要良好的网络环境支持。未来本系统可以搭配的功能,由于安卓搭载的丰富功能,诸如NFC直接确认理货状态等功能都能够很方便地致这一个多学期的研究工作接近尾声,四年大学生涯也即将圈上一个。这次毕业能够最终顺利完成是归功于在老师的精心指导和教诲,在此向导师致以最崇高的敬意和衷心的感谢。在科学研究中,老师广博的知识、严谨的治学态度和实事求是的科研精神着我,激励着我。老师的悉心指导和严格要求使我获益匪浅。对于主题和研究内容,老师都提出了自己宝贵的意见,使我从一开始对研究对象模糊不清到对研究对象了解并能开发出自己的研究与理解。我要感谢学长百忙之中抽出时间帮助我搜集文献资料,帮助我理清写作思路,对提出了诸多宝贵的意见和建议。在整个研究阶段同时感谢,是他们的帮助和大家一起互相研究并给与宝贵意见使本文的撰写及的研究得以顺利完成。感谢答辩组的所有老师给宝贵建议,我会做得更好。最后,对本文借鉴著作的作者,以及百忙中抽出时间审阅本的学者,表[1].基于的集装箱检测与技术研究[D].中国海洋大学[2].基于ARM的集装箱的设计与实现[D].西南交通大学[3].基于的集装箱检测与技术研究[D].中国海洋大学[4].电子报关领域框架及构件的研究与实现[D].航空航天大学[5].集装箱码头的风险评估及其安全防范[D].交通大学[6].集装箱堆场管理信息系统[J].交通与计算机,1992,06:41-[7].集装箱码头物流网络研究[D].海事大学[8].集装箱码头业务管理信息系统的实践[J].交通与计算机,2005,02:122-[9].烟台港集装箱智能管理信息系统分析与设计[D].[10],苗瑞,.基于Web的堆场智能管理信息系统的研究与实现[J].计算机工程与应用,2006,24:204-[11]魏众.集装箱码头物流作业系统集成优化调度研究[D].交通大学[12].港煤码头物流管理信息系统设计与实现[D].[13].基于供应链的港口物流系统规划方法研究[D].大连海事大学[14],井,何振威,钦.基于RFID技术的堆场信息系统设计[J].计算机测量与控制,2009,04:791-[15].基于WebServices的外轮理货业务系统的构建[D].复旦大学:复旦大学[16].FAW-ILC集装箱堆场信息系统的设计与应用研究[D].理工大学[17].港口协同智能管理信息系统生产经营管理子系统的设计与实现[D].电子科技大学[18].移动终端与服务器数据同步机制的应用研究[D].大连海事大学ErengS.S.,Simpson.N.C.,Vakharia.A.J.Integratedproduction/distributionplanninginsupplychains:Aninvitedreview[J].EuropeanJournalofOperationResearch,1999,115,219-236.AnthonyD.Ross.Atwo-phaseapproachtothesupplynetworkreconfigurationproblem[J].EuropeanJournalofOperationResearch,2000,122,18-30.TheoNotteboomCurrentIssuesinPortLogistics&IntermodalityGarantDistributedbyCoronetBooksLarryLapida,etal.Supplychainplanningoptimisation:Juasthefacts.Thereportonsupplychainmanagement.May1998.CretonJP.Anapproachtotheoptimaldesignofacontainerterminal.MassachusettsInstituteofTechnology,DepartmentofOceanEngineering,Cambridge,MA,02139,1973.Adacal,M.Bener,A.B.“MobileWebservices:anewagent-basedframework”,InternetComputing,Volume:10,Issue:3,May-JuneMarkoGargenta.LearningAndroid,附8N8N8N8N8N8N8Y8N8N8N8N8N8N8N8N8N8N8N8N8N8N8N8N8N8N8N8N8N8N8N8N8N8N8N8N8N8N8N8N8N8N8N8N8N8N8N8N8N8N8N8N8N8N8N8N8N8N8N8N8N8NN3NNN4NN1N1N1NNGPS1N1Npackageimportjava.io.IOException;importjava.io.InputStream;importjava.util.ArrayList;importjava.util.HashMap;importjava.util.List;importimportjavax.xml.parsers.SAXParser;import.xml.sax.InputSource;import.xml.sax.SAXException;import.xml.sax.XMLReader;importandroid.os.Asyn importandroid.os.Bundle;importandroid.app.Activity;importandroid.app.AlertDialog;importandroid.app.Dialog;importimportimportandroid.text.Editable;importandroid.text.TextUtils;importandroid.util.Log;importandroid.view.;importandroid.view.Item;importandroid.view.View;importimportimportandroid.widget.ArrayAdapter;importandroid.widget.EditText;importandroid.widget.ListView;importandroid.widget.Toast;publicclassMainActivityextendsActivityprivaistViewprivateEditTextprivateArrayList<HashMap<String,Object>>listItem=ArrayList<HashMap<String,privateArrayList<HashMap<String,Object>>newList=ArrayList<HashMap<String,Object>>();privateSimpleAdapterlistItemAdapter;privateCyWebServicecy=newCyWebService();privateStringxml;privateToastmToast;privaist<check_extent>extentList;privaist<CyCtn>CyList;privateAlertDialog.BuilderprivateDialogextentDialog;privateString[]content;protectedvoidonCreate(Bundle{super.onCreate(savedInstanceState);mListView=(ListView)mEditText=(EditText)findViewById(R.id.mEditText);mToast=Toast.makeText(this,"",Toast.LENGTH_LONG); extentBuilder=newnewgetExtentListAT().execute();newgetCyListAT().execute();mListView.setOnItemClickListener(newpublicvoidonItemClick(AdapterView<?>arg0,Viewintlongarg3)//TODOAuto-generatedmethodstubcontent=newString[5];extentDialog=}}通过TextWatchermTextWatcher=newpublicvoidafterTextChanged(Editablearg0)//TODOAuto-generatedmethod}publicvoidbeforeTextChanged(CharSequencearg0,intintintarg3)//TODOAuto-generatedmethod}publicvoidonTextChanged(CharSequencearg0,intarg1,intarg3)//TODOAuto-generatedmethodstubif(mEditText.getText()!=null)Stringinput_info=mEditText.getText().newList=getNewData(input_info);listItemAdapter=newR.layout.list,//ListItem的XMLnewString[]newint[]{R.id.ctnno,R.id.pid,R.id.}}privateArrayList<HashMap<String,Object>>getNewData(Stringinput_info){for(inti=0;i<listItem.size();i++)ifHashMap<String,Object>map=newHashMap<String,Object>();map.put("ctnno",}}return}privaist<?>parseXml(StringSAXParserFactoryfactory=SAXParserFactory.newInstance();SAXParserparser;SAXParserHelperhelperHandler=newSAXParserHelper();SAXParserCyListCyLsitHandler=newSAXParserCyList();parserXMLReader}else}

helperHandler);Log.d("xml1","check_extent");(flag.equals("CyCtn")){);StringReaderstringReader=newStringReader(xml.InputSourceinputSource=newInputSource(stringReader);e){e.printStackTrace();}catch(SAXException}catch(IOException}ifreturn}elseifreturn}return}privateclassgetCyListATextendsAsyn protectedList<CyCtn>nBackground(Void...arg0)//TODOAuto-generatedmethodstubCyList=newArrayList<CyCtn>();returnCyList;}protectedvoidonPostExecuist<CyCtn>for(int{HashMap<String,Object>map=newHashMap<String,Object>();map.put("ctnno",map.put("pid",}listItemAdapter=new的newString[]newint[]}}privateclassgetExtentListATextendsAsynk<Void,Void,protectedList<check_extent>nBackground(Void...arg0)//TODOAuto-generatedmethodstubextentList=newreturn}protectedvoidonPostExecuresult){Iterator<check_extent>it=result.iterator();List<String>ls=newArrayList<String>();String[]str=(String[])ls.toArray(new;}}privateclassconfirmExtentATextendsAsynk<Void,Void,protectedStringnBackground(Void...arg0)//TODOAuto-generatedmethodreturncy.setCheckExtent(content[0].split(":")[1],":")[1],"9999");}protectedvoidonPostExecute(String}}}

privateOnClickListenerextentListListener=newpublicvoidonClick(DialogInterfacearg0,intarg1)//TODOAuto-generatedmethodstubAlertDialog.BuilderconfirmBuilder=newAlertDialog.confirmBuilder.setItems(content,null);confirmBuilder.setNegativeButton("取消",null);privateOnClickListenerconfirmButton=newpublicvoidonClick(DialogInterfacearg0,intarg1)//TODOAuto-generatedmethodnewprivatevoidshowTip(String{{}}publicbooleanonCreateOptions()//Inflatethe ;thisaddsitemstotheactionbarifitispresent.get return}publicbooleanonOptionsItemSelected(Itemitem)switch(item.getItemId())caseR.id.action_refresh:;newreturnreturn}}}packageimportjava.io.IOException;importjava.util.ArrayList;importjava.util.List;import.ksoap2.Soimportimportimportimport.ksoap2.transport.HttpTransportSE;import.xmlpull.v1.XmlPullParserException;importandroid.util.Log;publicclassCyWebServiceprivatestaticfinalStringprivatestaticfinalStringURL=" privatestaticfinalStringprivatestaticfinalStringprivatestaticfinalStringpublicStringgetCyList(StringSoapObjectsoapobject=newSoapObject(NameSpace,soapobject.addProperty("as_cy","J");SoapSerializationEnvelopeenvelope=newHttpTransportSEht=newtry//ht.debug=true;}catch(IOExceptione)//TODOAuto-generatedcatchblock}catch(XmlPullParserExceptione)//TODOAuto-generatedcatchblock}if(envelope.bodyIninstanceof{Stringstr=((SoapFault)envelope.bodyIn).Log.i("soapfault",return}elseSoapObjectresultsRequestSOAP=(SoapObject)return}}publicStringSoapObjectsoapobject=newSoapObject(NameSpace,SoapSerializationEnvelopeenvelope=newHttpTransportSEht=newHttpTransportSE(URL);try{}catch(IOExceptione)//TODOAuto-generatedcatchblock}catch(XmlPullParserExceptione)//TODOAuto-generatedcatchblock}SoapObjectobject=(SoapObject)return}publicStringsetCheckExtent(Stringctnno,Stringpid,Stringcpid,Stringcheck_extent,Stringopid){SoapObjectsoapobject=newSoapObject(NameSpace,soapobject.addProperty("as_pid",pid);soapobject.addProperty("as_ctnno",ctnno);soapobject.addProperty("as_cpid",cpid);soapobject.addProperty("as_lh_opid","9999");SoapSerializationEnvelopeenvelope=newHttpTransportSEht=newHttpTransportSE(URL);try{}catch(Exception{if(e.getMessage().contains("after20000ms:connectreturn"after20000ms:connect}}if(envelope.bodyIninstanceof{Stringstr=((SoapFault)envelope.bodyIn).Log.i("soapfault",return}elseSoapObjectresultsRequestSOAP=(SoapObject)return}}}packageimportimportimportimportimportimportpublicclassSAXParserHelperextendsDefaultHandlerprivaist<check_extent>privateStringprivatecheck_extentcheck_extent=newprivateStringpoint=publicList<check_extent>return}publicvoidstart()throwsSAXException//TODOAuto-generatedmethodextentList=new}publicvoidcharacters(char[]ch,intstart,intthrowsSAXException//TODOAuto-generatedmethodstubsuper.characters(ch,start,length);if(point.equals("code")){code=String.valueOf(ch,start,length);}elseifname=String.valueOf(ch,start,length);}}publicvoidendElement(Stringuri,StringlocalName,StringthrowsSAXException//TODOAuto-generatedmethodstubsuper.endElement(uri,localNam

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论