




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
查询城市天气预报信息主页面WeatherActivity继承android.app.Activity, 并重写 onCreate 方法。 onCreate 方法是查询页面的初始化方法,在这个方法中我们要初始化页面中 Button,Spinner 等控件信息。 showCity 方法,列表显示查询天气预报信息的城市名称。 updateWeatherInfoView 方法,更新显示选中城市的当前天气信息。 updateWeatherorecastView 方法,更新显示选中城市未来四天的天气信息。 getCityWeather 方法,通过网络得到选中城市的天气预报信息。查 询 城 市 天 气 预 报 详 细 信 息 页 面 WeatherDetailActivity 继 承android.app.Activity, 并重写 onCreate 方法。 onCreate 方法是查询天气预报详细页面的初始化方法,在这个方法中我们要初始化页面中 TextView 等控件信息。 showDetailInfo 方法,得到查询目标城市的天气预报的风向、能见度、相对湿度等详细信息。1.5 系统实现代码解析1.5.1 Android 客户端系统配置文件AndroidManifest.xml 是系统中的配置文件,我们需要将系统中用到的Android 组件都在这个文件中注册,其中 WeatherActivity 是显示天气预报的主页面,WeatherDetailActivity 是显示天气预报详细的的页面。为了访问 Google提供天气预报信息的站点和能够访问提供选定城市更多信息的 Web Service 必须为系统开放访问 Internet 的权限:。代码清单 1 AndroidManifest.xml第 12 页 共 31 页1.5.2 Android 城市天气预报系统布局文件城市天气预报主页面布局采用 XML 形式,文件放置在reslayoutmain.xml中。代码清单 2 main.xml 布局文件第 13 页 共 31 页城市天气预报详细信息页面布局采用 XML 形式,文件放置在reslayoutweatherdetail.xml 中。1.5.3 Android 城市天气预报系统核心代码在 Android 客户端使用 WeatherActivity,必须继承 Activity 类,并在AndroidManifest.xml 文件中配置相应的信息。public class WeatherActivity extends Activity /更多信息按钮private Button details;private int index;Overridepublic void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(R.layout.main);details = (Button) findViewById(R.id.Button02);showCity();/显示城市名称列表private void showCity() Spinner city_spr = (Spinner) findViewById(R.id.Spinner01);ArrayAdapter adapter = new ArrayAdapter(this,android.R.layout.simple_spinner_item, Constant.city);adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);city_spr.setAdapter(adapter);Button submit = (Button) findViewById(R.id.Button01);details.setVisibility(Button.INVISIBLE);submit.setOnClickListener(new OnClickListener() Overridepublic void onClick(View v) Spinner spr = (Spinner) findViewById(R.id.Spinner01);Long lspr = spr.getSelectedItemId();代码清单 4 Android 城市天气预报主页面代码第 15 页 共 31 页如上代码段所示,要开发使用城市天气预报信息主页面,我们需要上面代码清单所示的代码: 设置天气预报信息主页面布局; 获得 Spinner 控件; 在 Spinner 控件中设置要显示的城市名称列表; 获得城市代码;1.5.4 Android 城市天气预报更多信息页面核心代码Android 城市天气预报更多信息页面显示除气温以外的风向、能见度、结露点、相对湿度、气压等当前天气的情况的详细信息。int index1 = Value();index = index1;String cityParamString = Constant.cityCodeindex1;try URL url = new URL(Constant.queryString + cityParamString);details.setVisibility(Button.VISIBLE);getCityWeather(url); catch (Exception e) Log.e(CityWeather, e.toString(););public class WeatherDetailActivity extends Activity private WeatherDetailInfo weatherDetailInfo;Overrideprotected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(R.layout.weatherdetail);showDetailInfo();private void showDetailInfo()TextView textView = (TextView) this.findViewById(R.id.weatherInfoText);代码清单 5 Android 城市天气预报更多信息页面代码第 16 页 共 31 页weatherDetailInfo = new WeatherDetailInfo();final StringBuffer sb = new StringBuffer();Intent queryIntent = getIntent();String cityName = queryIntent.getStringExtra(CityName);Map map = new HashMap();map.put(CityName, cityName);map.put(CountryName, China);String xmlStr =WebServiceHandler.doCallWebService(Constant.SOAP_ACTION,Constant.METHOD_NAME, map);RootElement rootElement = new RootElement(CurrentWeather);Element element1 = rootElement.getChild(Location);element1.setEndTextElementListener(new EndTextElementListener() public void end(String body) weatherDetailInfo.setLocation(body);sb.append(位置:+body+n););Element element2 = rootElement.getChild(Time);element2.setEndTextElementListener(new EndTextElementListener() public void end(String body) weatherDetailInfo.setTime(body);sb.append(时间:+body+n););Element element3 = rootElement.getChild(Wind);element3.setEndTextElementListener(new EndTextElementListener() public void end(String body) weatherDetailInfo.setWind(body);sb.append(风向:+body+n););Element element4 = rootElement.getChild(Visibility);element4.setEndTextElementListener(new EndTextElementListener() public void end(String body) weatherDetailInfo.setVisibility(body);sb.append(能见度:+body+n);第 17 页 共 31 页);Element element5 = rootElement.getChild(Temperature);element5.setEndTextElementListener(new EndTextElementListener() public void end(String body) weatherDetailInfo.setTemperature(body);/sb.append(气温:+body+n););Element element6 = rootElement.getChild(DewPoint);element6.setEndTextElementListener(new EndTextElementListener() public void end(String body) weatherDetailInfo.setDewPoint(body);sb.append(结露点:+body+n););Element element7 = rootElement.getChild(RelativeHumidity);element7.setEndTextElementListener(new EndTextElementListener() public void end(String body) weatherDetailInfo.setRelativeHumidity(body);sb.append(相对湿度:+body+n););Element element8 = rootElement.getChild(Pressure);element8.setEndTextElementListener(new EndTextElementListener() public void end(String body) weatherDetailInfo.setPressure(body);sb.append(气压:+body+n););try SAXParserFactory factory = SAXParserFactory.newInstance();SAXParser parser = factory.newSA
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 系统化运营:夫妻二人共同投资茶馆的合伙协议
- 《涉及房产、股权、债务的夫妻离婚财产分割协议》
- 数字化云平台租赁电信机房服务器及维护服务合同
- 离异家庭子女抚养权、探望权及财产分割执行合同
- 智能家居平台合作合同续签及用户体验优化协议
- 2025年医疗器械国产化趋势下国际市场拓展与品牌建设研究报告
- 2025年制造业数据治理与工业互联网安全防护体系建设策略分析报告
- 汽车行业智能网联汽车2025年信息安全与隐私保护研究报告
- 中职专业笔试题库及答案
- 动物脱逃应急预案(3篇)
- 2025年少先队大队委笔试试卷及答案
- 《干部履历表》(1999版电子版)
- 青少年亲社会行为量表
- 研发支出辅助账汇总表
- 计算机组装与维护完整版课件(全)
- 健康疗休养基本服务承诺书
- 聚合物混凝土定义、分类和性质Polymerconcrete
- 口袋妖怪(宠物小精灵)1至649图鉴
- Q∕GDW 11612.2-2018 低压电力线高速载波通信互联互通技术规范 第2部分:技术要求
- 计算机网络技术ppt课件(完整版)
- E2等级砝码组标准装置计量标准考核(复查)申请书
评论
0/150
提交评论