1、天气预报 李元 王朴1:(北京)CHINA UNIVERSITY OF PETROLEUMAndroid大作业报告天气预报程序院系名称: 地球物理与信息工程学院 专业名称: 计算机科学与技术 学 号: 2012011342 2012011337 姓 名: 王朴 李元 完成日期 2014 年 11 月 5 日 一项目总体介绍:本组所研发的天气预报系统,利用XX地图接口获取用户所在地,并利用现有的网络快速获取AccuWeather接口的天气信息并显示到手机终端上,为用户提供实时的天气查询和近期天气查询服务,为工作、出行等带来便利。本软件具有定位、更新查询实时天气、一周天气变化、拍照及分享至微信朋友
2、圈等功能,背景音乐可播放或关闭。二任务分析:本软件应该包含三个模块:1.显示天气预报的用户界面:在这个软件中,有一个显示天气情况的用户界面,可以定位获取当地天气,通过图片和文字显示当前和未来一周的天气状况,包括所查询地点当天的各时段的温度,及未来一周的最高温度、最低温度、雨雪情况等。点击刷新可更新实时天气,这些天气数据是通过后台服务获取的。2.查询地点的输入选择模块:在用户主界面点击定位按钮可以自动定位到用户所在城市并更新显示所在城市的天气状况。用户想查询其它地点的天气状况时,可以点击城市名进入查询地点更换界面,输入城市名关键字,后台服务将城市名转换为关键编码并从ACCU上获取天气预报信息,并
3、将天气信息显示在界面中。并且该界面会记住用户所查询的城市历史纪录,用户可选择手动删除历史纪录。3.开关背景乐及拍照分享等功能的菜单模块:3任务实施首先环境配置:从csdn网站下载XX地图的sdk包,加到Android Private Libraries文件夹下;从AccuWeather官网下载sdk包,加到Android Private Libraries文件夹下。需要在androidmanifest.xml文件里添加如下权限: 1.用户界面设计:整个界面共分为三部分:当前天气显示部分、24小时天气状况显示部分、未来一周天气状况显示部分。(1)当前天气显示部分:显示当前时间地点的温度、天气情况
4、等,有定位、地点更换、更新等功能选择。(2)24小时天气状况显示部分:当前一天内分时间段的温度及天气状况显示。(3)未来一周天气状况显示部分:未来一周内每日的最高温、最低温及天气状况显示。 主界面(当前天气显示部分)Weather.xml 城市选择界面 findcity.xml 拍摄照片、分享朋友圈功能界面 2.天气查询、定位等功能实现:(1)天气查询 该功能实现利用了AccuWeather提供的接口,将所需要查询的城市名字作为参数,想服务器发出请求,服务端以省/市/区的形式返回城市信息及编码,建立数据库存入城市查询记录。建立URL地址,向服务器请求数据信息。该功能牵涉到三个文件。分别是Fin
5、dCity.java、WEBProvider.java和GetData.java。代码如下:FindCity.javapackage com.yoyo.EasyWeather;import java.util.*;import com.yoyo.EasyWeather.Data.*;import com.yoyo.EasyWeather.Bean.*;import com.yoyo.EasyWeather.Util.*;import android.app.*;import android.content.*;import android.os.*;import android.util.Lo
6、g;import android.view.*;import android.view.View.*;import android.widget.*;import android.widget.AdapterView.*;public class FindCity extends Activity private ListView list; private EditText etext; private static Handler mHandler; private String json; Override protected void onCreate(Bundle savedInst
7、anceState) super.onCreate(savedInstanceState); setContentView(R.layout.findcity); list = (ListView) findViewById(R.id.citylist); etext = (EditText) findViewById(R.id.editfind); setLocalList(); View btn = findViewById(R.id.find); btn.setOnClickListener(new OnClickListener() Override public void onCli
8、ck(View v) String text = etext.getText().toString(); if (text.length() != 0) searchCity(text); ); View back = findViewById(R.id.back); back.setOnClickListener(new OnClickListener() Override public void onClick(View v) finish(); ); mHandler = new Handler() Override public void handleMessage(Message m
9、sg) switch (msg.what) case 0x2014:setFindList(); break; super.handleMessage(msg); ; private void setFindList() ListMap Items = new ArrayListMap(); for (EasyCity city : parseCity.citys) Map Item = new HashMap(); Item.put(area, city.getCountry().getLocalizedName() + / + city.getAdministrativeArea().getLocalizedName() + / + city.getLocalizedName(); Items.add(Item); SimpleAdapter adp = new SimpleAdapter(this, Items, R.layout.item_city, new Stringarea, new intR.id.city); list.setAdapter(adp); list.setOnItemClickListener(new OnItemClickListener() Override pu
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1