1.Android的天气预报的应用还是挺多的,基于JSON和WebServ的均可。首先我们来介绍基于JSON解析的天气预报的开发
2.这需要寻找到合适的数据源。这里使用的是http://www.weather.com.cn/(中央气象局)的数据信息。可通过m.weather.com.cn/data/101010100.html或者www.weather.com.cn/data/cityinfo/101010100.html。
查看到北京的天气信息
3.接下来就是对JSON数据的解析
```
package com.cater.weather;
import java.io.IOException;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.Activity;
import android.os.Bundle;
import android.widget.EditText;
import android.widget.TextView;
public class WeatherReportActivity extends Activity
{
private final static String url = "http://m.weather.com.cn/data/101010100.html";
private HttpClient httpClient;
private HttpResponse httpResponse;
private HttpGet httpGet;
private EditText editText;
private TextView textView;
private String today;
private String dayofweek;
private String city;
private int ftime;
private String template;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
editText = (EditText) findViewById(R.id.editText1);
textView = (TextView) findViewById(R.id.textView1);
httpClient = new DefaultHttpClient();
parseString(getRequest(url));
editText.setText(getRequest(url));
textView.setText("城市:" + city + "\n"
+"温度:" + template + "\n"
+"星期:" + dayofweek + "\n"
+"时间:" + ftime + "\n"
+"日期:" + today + "\n");
}
private String getRequest(String uri)
{
httpGet = new HttpGet(uri);
String result = "";
try
{
httpResponse = httpClient.execute(httpGet);
if (httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK)
{
result = EntityUtils.toString(httpResponse.getEntity());
return result;
}
}
catch (ClientProtocolException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
return null;
}
private String parseString(String str)
{
try
{
JSONObject jsonObject = new JSONObject(str).getJSONObject("weatherinfo");
today = jsonObject.getString("date_y");
dayofweek = jsonObject.getString("week");
city = jsonObject.getString("city");
ftime = jsonObject.getInt("fchh");
template = jsonObject.getString("temp1");
}
catch (JSONException e)
{
e.printStackTrace();
}
return null;
}
}
分享到:
相关推荐
安卓期末大作业Android天气预报app源码安卓期末大作业Android天气预报app源码安卓期末大作业Android天气预报app源码安卓期末大作业Android天气预报app源码安卓期末大作业Android天气预报app源码安卓期末大作业...
【Android天气预报应用开发】 在Android平台上开发天气预报应用是一个典型的移动应用开发案例,涉及到网络数据获取、地理位置定位、UI设计以及数据存储等多个方面。以下是对这个实验报告中涉及的知识点的详细说明:...
android天气预报android天气预报android天气预报android天气预报android天气预报android天气预报
总的来说,开发一个Android天气预报应用涵盖了网络编程、数据解析、UI设计、图形绘制、本地存储、位置服务和性能优化等多个方面的技术知识。通过集成和运用这些技术,可以创建出一款功能齐全、用户体验良好的天气...
android天气预报程序源码 实现了全国各城市天气信息的获取 可以展示最近六天的天气状况 对于android学习者有很大的帮助
【Android天气预报源码】是一个开放的学习资源,它包含了实现Android平台上天气预报功能的完整代码。这个源码项目是开发者在网络中发现并分享的,旨在促进Android开发者的交流与学习,帮助他们理解如何在Android应用...
【Android天气预报项目代码】是Android开发者学习和实践的一个经典案例,主要涵盖了如何在Android平台上构建一个能够展示实时天气信息的应用。在这个项目中,开发者需要处理的关键知识点包括网络请求、JSON解析以及...
这份"Android天气预报源码"提供了实现此类功能的具体代码,是开发者学习和实践Android应用程序开发,尤其是数据获取和UI设计的宝贵资源。下面将详细探讨这个源码中的关键知识点。 1. **网络请求与数据解析**:为了...
【Android天气预报源码解析】 本项目是一款基于Android平台的天气预报应用,旨在提供全国范围内各个县市的实时天气信息查询服务,并具备后台自动更新功能,确保用户随时获取最新的气象数据。下面将从多个方面详细...
在Android平台上开发一个天气预报应用是一项常见的任务,它涉及到网络通信、数据解析、UI设计等多个技术领域。在这个“android 天气预报实例”中,我们将深入探讨如何利用Android SDK调用WebService接口来获取并显示...
《Android天气预报应用详解》 Android天气预报应用是一款集天气信息查询、历史数据查看和系统设置功能于一体的实用软件。本文将详细介绍该应用的文件结构、界面设计及操作流程。 一、软件文件结构与命名空间 该...
【Android天气预报demo】是一个基于Android平台的示例应用程序,主要功能是获取并显示特定城市的天气信息。这个项目展示了如何通过http请求从服务器获取数据,然后解析返回的JSON格式信息,并在用户界面上以直观的...
【Android 天气预报】是一款基于Android平台的应用程序,它为用户提供实时的天气...以上是根据提供的文件名解析出的Android天气预报应用开发的相关知识点,涵盖了项目结构、配置、资源管理和核心功能实现等多个方面。
本项目名为"PalmarWeather",显然是一个专业的商业级Android天气预报源代码,它为我们揭示了实现此类应用的高级技巧和最佳实践。 1. **网络通信**:在天气预报应用中,通常会与一些开放的天气API(如OpenWeatherMap...
"android天气预报代码"这个项目,从标题来看,显然是一个实现显示城市天气信息的应用程序,能够提供当前城市及未来三天的天气预报。 首先,我们来探讨Android应用的基本结构。一个标准的Android应用通常包含多个...