欢迎来到论文网! 识人者智,自知者明,通过生日认识自己! 生日公历:
网站地图 | Tags标签 | RSS
论文网 论文网8200余万篇毕业论文、各种论文格式和论文范文以及9千多种期刊杂志的论文征稿及论文投稿信息,是论文写作、论文投稿和论文发表的论文参考网站,也是科研人员论文检测和发表论文的理想平台。lunwenf@yeah.net。
您当前的位置:首页 > 毕业论文 > 计算机毕业论文

Android智能手机天气预报系统设计及实现_论文网

时间:2011-05-16  作者:秩名
  2.2 创建中国城市列表数据

根据天气预报系统功能需求分析,系统启动后,应在主界面上应呈现出中国国内所有城市的列表数据,因此需要创建中国城市列表数据,包括获取、解析城市列表数据,并在用户界面上呈现出来。其中重要的是手机终端从Web 服务器获取了所有类型的数据之后,如何将这些数据进一步交给Android 手机终端View组件[4],在手机界面上显示给用户。

(1)获取城市列表数据

由于Android没有提供Web Service的组件库,但可以通过修改在PC或J2ME上使用的开源Web ServiceJava库作为Android Web Service库使用。kSOAP2(http://ksoap2.sourceforge.net)就是一个在智能手机上的SOAP Web Service客户端包论文网,可用于资源受限制的Java环境如Applets或J2ME 应用程序。在Google Code上有一个项目ksoap2-android(http://code.google.com/p/ksoap2-android/)可用在Android平台上实现轻量级的SOAP库,即使用ksoap2-android的API来调用远端Web Service的服务。因此需要在CitiesWeatherForecast.java的onCreate()中进行数据获取的初始化工作,这可通过定义一个方法publicList<String> getAllCitiesNames()来获得中国城市名称列表。也就是说,采用它提供的获得全球各个国家城市的方法GetCitiesByCountry,通过http://www.webservicex.net/globalweather.asmx上的Web Service来提供天气预报服务。譬如,通过Constant.java中的public class Constant {},设置SOAP Action要调用的方法名、命名空间以及Web Service URL值。其源代码为:

public static final String SOAP_ACTION ="http://www.webserviceX.NET/GetCitiesByCountry";

public static final String METHOD_NAME ="GetCitiesByCountry";

public static final String SOAP_ACTION2 ="http://www.webserviceX.NET/GetWeather";

public static final String METHOD_NAME2 ="GetWeather";

public static final String NAMESPACE ="http://www.webserviceX.NET";

public static final String URL ="http://www.webservicex.net/globalweather.asmx";

然后在WebServiceCaller.java中实例化一个SoapSerializationEnvelope对象,设置 SoapObject的命名空间、方法名、参数等;并通过实例化一个AndroidHttpTransport对象来调用Web Service,并获得xml字符串数据。的代码段如下:

AndroidHttpTransport androidHttpTransport = newAndroidHttpTransport (Constant.URL);

try {

androidHttpTransport.call(soapAction,envelope);

Object result= envelope.getResponse();

xmlStr =result.toString();

}catch(Exception e) {

e.printStackTrace();

}

(2)解析数据列表

Android操作系统对xml字符串数据的操作功能很强,提供了dom、sax以及xmlpul3种方式,AndroidSDK 提供了android.sax包以方便SAXHandler的开发,可用来解析xml结果字符串。在本设计实例的CitiesWeatherForecast.java文件中,解析xml数据时,先通过RootElement root = new RootElement("NewDataSet")获得xml数据的根节点;然后再寻找其子节点直到找到City子节点,并设置一个监听器setEndTextElementListener()来获得City子节点的值;最后使用org.xml.sax的SAXParser来解析xml数据,把数据存入List<String>并返回:

SAXParserFactory factory = SAXParserFactory.newInstance();

SAXParser parser = factory.newSAXParser();

XMLReader xmlreader = parser.getXMLReader();

xmlreader.setContentHandler(root.getContentHandler());

InputSource is = new InputSource(newStringBufferInputStream(xmlStr));

xmlreader.parse(is);

(3)在UI上呈现城市列表数据

当获得List<String>类型的数据之后论文网,就可以把它绑定到main.xml定义的ListView组件上,然后使用ListActivity呈现列表数据。在CitiesWeatherForecast.java中的代码段为:

List<String> cityList = getAllCitiesNames();

setListAdapter(new ArrayAdapter<String>(this,

android.R.layout.simple_list_item_1,cityList));

即使用方法setListAdapter()把一个ListActivity填充进去。

2.3城市天气实况预报系统运行

城市天气实况预报系统的相关编码完成后对其测试运行结果如下。在Eclipse的Package Explorer窗口中右键选择CitiesWeatherForecast工程名,在弹出的窗口中选择“Run As”→“Android Application”安装该应用程序到Android模拟器并启动它。然后单击所要查询的城市名称列表项,稍等片刻便会显示出该城市的天气实况信息。也可以在文本框中直接输入所要查询的城市名称,单击“Search”同样会获得相应城市的天气预报信息。

3 结束语

Android 平台具有极大的开放性和兼容性,并且本身大量使用开源代码库,深为开发人员所喜爱。Android智能手机应用程序开发涉及它的整个体系结构,是一项非常复杂的工程。本文在介绍基于Android平台的应用程序设计原理的基础上,主要讨论提出了Android 用户界面设计、获取并解析列表数据的一种方法,给出了在用户界面上呈现数据的原理与设计过程;最后通过模拟器实现了应用程序的运行结果。当然, 基于Android 平台的开发技术还需要进一步完善, 需要在日后的工作中不断探索、研究, 以形成实用的城市天气实况预报系统。随着Google公司大力推广Android平台和Android智能手机的推出, 该系统会有很好的应用发展前景。


参考文献
[1]张波,高朝勤,杨选,等译.Burnette Ed. Android 基础教程[M].北京:人民邮电出版社,2009.
[2]张利国代闻龚海平编著.Android移动开发案例详解[M]. 北京:人民邮电出版社, 2010.
[3]刘平。Android 手机访问服务器的一种数据交互方法[J]. 电子设计工程. 2010 年9 月. Vol.18,No.9.
[4]王向辉,张国印,陈洁.Android 应用程序开发[M]. 北京:清华大学出版社,2010.
 

 

查看相关论文专题
加入收藏  打印本文
上一篇论文:基于网络的微机实验室排课系统分析与设计
下一篇论文:Etherchannel技术在民航气象数据库系统中的应用
毕业论文分类
行政管理毕业论文 工商管理毕业论文
护理毕业论文 会计毕业论文
会计专业毕业论文 英语专业毕业论文
大学毕业论文 硕士毕业论文
计算机毕业论文 市场营销毕业论文
物流管理毕业论文 法学毕业论文
相关计算机毕业论文
最新计算机毕业论文
读者推荐的计算机毕业论文