- 浏览: 2683158 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
80后的童年2:
深入浅出MongoDB应用实战开发网盘地址:https://p ...
MongoDB入门教程 -
shliujing:
楼主在不是精通java和php的前提下,请不要妄下结论。
PHP、CakePHP哪凉快哪呆着去 -
安静听歌:
希望可以一给一点点注释
MySQL存储过程之代码块、条件控制、迭代 -
qq287767957:
PHP是全宇宙最强的语言!
PHP、CakePHP哪凉快哪呆着去 -
rryymmoK:
深入浅出MongoDB应用实战开发百度网盘下载:链接:http ...
MongoDB入门教程
1,使用Googel API
http://www.google.com/ig/api?&weather=beijing
2,使用DOM解析XML
3,另起Thread处理Web请求
4,使用Handler传递Thread处理结果到UI主Thread
5,完整代码
6,修改AndroidManifest.xml加上INTERNET访问权限
http://www.google.com/ig/api?&weather=beijing
2,使用DOM解析XML
String weather = ""; String url = "http://www.google.com/ig/api?&weather=beijing"; DefaultHttpClient client = new DefaultHttpClient(); HttpUriRequest req = new HttpGet(url); HttpResponse resp = client.execute(req); HttpEntity ent = resp.getEntity(); InputStream stream = ent.getContent(); DocumentBuilder b = DocumentBuilderFactory.newInstance().newDocumentBuilder(); Document d = b.parse(new InputSource(stream)); NodeList n = d.getElementsByTagName("forecast_conditions"); for (int i = 0; i < n.getLength(); i++) { weather += n.item(i).getChildNodes().item(0).getAttributes().item(0).getNodeValue(); weather += ", "; weather += (Integer.parseInt(n.item(i).getChildNodes().item(1).getAttributes().item(0).getNodeValue()) - 32) * 5 / 9; weather += " ~ "; weather += (Integer.parseInt(n.item(i).getChildNodes() .item(2).getAttributes().item(0).getNodeValue()) - 32) * 5 / 9; weather += ", "; weather += n.item(i).getChildNodes().item(4).getAttributes().item(0).getNodeValue(); weather += "\n"; }
3,另起Thread处理Web请求
new Thread() { public void run() { try { // ... } catch (Exception e) { e.printStackTrace(); } } }.start();
4,使用Handler传递Thread处理结果到UI主Thread
h = new Handler() { public void handleMessage(Message msg) { tv.setText((String)msg.obj); } }; new Thread() { // ... Message msg = h.obtainMessage(1, 1, 1, weather); h.sendMessage(msg); }
5,完整代码
package com.hideto.weatherforecast; import java.io.InputStream; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpUriRequest; import org.apache.http.impl.client.DefaultHttpClient; import org.w3c.dom.Document; import org.w3c.dom.NodeList; import org.xml.sax.InputSource; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.widget.TextView; public class WeatherForecast extends Activity { public TextView tv; public Handler h; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); tv = new TextView(this); tv.setText("Loading..."); setContentView(tv); h = new Handler() { public void handleMessage(Message msg) { tv.setText((String)msg.obj); } }; new Thread() { public void run() { try { String weather = ""; String url = "http://www.google.com/ig/api?&weather=beijing"; DefaultHttpClient client = new DefaultHttpClient(); HttpUriRequest req = new HttpGet(url); HttpResponse resp = client.execute(req); HttpEntity ent = resp.getEntity(); InputStream stream = ent.getContent(); DocumentBuilder b = DocumentBuilderFactory.newInstance().newDocumentBuilder(); Document d = b.parse(new InputSource(stream)); NodeList n = d.getElementsByTagName("forecast_conditions"); for (int i = 0; i < n.getLength(); i++) { weather += n.item(i).getChildNodes().item(0) .getAttributes().item(0).getNodeValue(); weather += ", "; weather += (Integer.parseInt(n.item(i).getChildNodes() .item(1).getAttributes().item(0).getNodeValue()) - 32) * 5 / 9; weather += " ~ "; weather += (Integer.parseInt(n.item(i).getChildNodes() .item(2).getAttributes().item(0).getNodeValue()) - 32) * 5 / 9; weather += ", "; weather += n.item(i).getChildNodes().item(4) .getAttributes().item(0).getNodeValue(); weather += "\n"; } Message msg = h.obtainMessage(1, 1, 1, weather); h.sendMessage(msg); } catch (Exception e) { e.printStackTrace(); } } }.start(); } }
6,修改AndroidManifest.xml加上INTERNET访问权限
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.hideto.weatherforecast" android:versionCode="1" android:versionName="1.0.0"> <uses-permission android:name="android.permission.INTERNET"></uses-permission> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".WeatherForecast" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
发表评论
-
Ubuntu 11.10 安装Java、JIRA/Confluence/FishEye、Nginx
2012-03-01 22:26 46711. 替换Ubuntu源 编辑/etc/apt/source. ... -
Android程序开发入门
2009-03-26 14:26 30311, 安装软件 1) JDK 2) Eclipse 3) AD ... -
Spring与ThreadLocal的讨论
2007-07-31 12:27 3916Singleton是不能使用非Singleton的实例的 比如 ... -
Spring基础培训ppt
2007-07-30 19:34 6255做ppt还真是累 更新了一下ppt. -
使用Jetty和DWR创建伸缩性Comet程序
2007-07-28 21:11 7529Ajax for Java developers: Write ... -
Java代码规范
2007-07-19 01:12 3450http://java.sun.com/docs/codeco ... -
Spring JavaConfig参考文档
2007-07-14 18:37 12835Spring JavaConfig参考文档 Spring Ja ... -
Tiger in the house
2007-07-14 02:49 8294很高兴花周五晚上2个小时的时间来阅读这样一本实用的书 -- 《 ... -
深入了解Java ClassLoader、Bytecode 、ASM、cglib
2007-07-05 16:50 19464一、Java ClassLoader 1,什么是ClassL ... -
Java里判断Image文件信息格式(GIF/PNG/JPG)/Size/Height/Width?
2007-06-05 18:01 92871,判断Image格式 用UE打开GIF/PNG/JPG格式的 ... -
推荐轻量级面向服务Web开发库Objot
2007-05-27 22:17 3207Objot是我们公司Aragon Consulting Gro ... -
实战Mule:利用Mule调用XFire发布的文件上传服务
2007-03-27 15:17 5943配置Mule和XFire环境 参考前面的文章实战Mule:利用 ... -
实战Mule:利用Mule调用XFire发布的Web服务
2007-03-26 17:26 9409下载和安装XFire和Mule 参考http://hideto ... -
开源ESB引擎Mule初印象
2007-03-22 18:13 10674Mule is the leading open source ... -
XFire快速上手
2007-03-14 11:53 6712下载XFrie 首先,去http://xfire.codeha ... -
学习Eclipse RCP之Hello World
2007-03-12 17:57 4253创建插件项目 打开Eclipse并选择File->New ... -
Google Web Toolkit上手指南
2007-03-12 16:07 4791目录 安装Google Web Toolkit 构建一个简单的 ... -
5分钟学习Maven2
2007-03-12 01:12 5954安装 Maven是一个Java工具,所以你必须安装Java环境 ... -
在UDDI注册中心里使用WSDL
2007-03-09 15:55 7322原文链接:http://www.oasis-open.org/ ... -
Axis2快速上手指南
2007-03-01 23:22 74370原文链接:http://ws.apache.org/axis2 ...
相关推荐
在安卓平台上开发一款天气预报应用是一项常见的任务,它涉及到Android应用程序的基本架构、网络请求、数据解析、UI设计以及用户交互等多个方面。以下是对"android_weatherforecast.zip_android"这个压缩包中可能包含...
“Android-WeatherForecast”作为一个完整的Android项目,涵盖了网络编程、数据解析、用户界面设计等多个方面,是学习Android开发的优秀实例。通过对这个项目的理解和实践,开发者可以深入掌握Android应用开发的关键...
【Android代码-WeatherForecast应用源码.zip】是一个包含Android应用程序源代码的压缩文件,主要用于学习和研究Android开发,特别是天气预报应用的实现。这个源码提供了实现天气展示、数据获取和用户交互等功能的...
【Android WeatherForecast应用源码分析】 在Android平台上,开发一款WeatherForecast应用是常见的实践,它通常用于展示...记得在学习过程中,逐步理解每个组件的作用,并尝试修改和优化,以更好地掌握Android开发。
在Android开发领域,掌握源码分析是提升技术深度的关键。这里我们关注的是一个名为"Android WeatherForecast"的应用程序源码,这是一个典型的天气预报类应用,旨在帮助用户获取实时天气信息。通过深入研究这个应用的...
本篇将围绕"Android应用源码之WeatherForecast"这一主题,针对毕业设计进行深入探讨,旨在帮助初学者和有经验的开发者更好地理解Android应用的开发流程与技术要点。 一、Android应用结构分析 WeatherForecast应用...
Android WeatherForecast应用源码是Android开发中的一款常见示例,它展示了如何在Android平台上构建一个天气预报应用程序。这个应用通常包括获取天气数据、数据显示、用户交互等多个核心功能模块,是学习Android开发...
Android天气预报程序源代码,获取的Google的天气API数据,自己可再次扩展,这里运行截图比较难抓,有环境的就下载源码测试吧,Android天气预报WeatherForecast似乎是常见而又简单的Android初级例子,但想开发出一款...
总结,Android WeatherForecast应用源码是一个全面的学习平台,涵盖了网络通信、数据解析、UI设计、服务与通知、权限管理等多个Android开发的关键环节。通过深入研究这份源码,学生不仅能掌握Android应用开发的基本...
Android天气预报程序源代码,获取的Google的天气API数据,自己可再次扩展,这里运行截图比较难抓,有环境的就下载源码测试吧,Android天气预报WeatherForecast似乎是常见而又简单的Android初级例子,但想开发出一款...
这个源码可以作为Android开发的学习案例,帮助开发者了解如何在Android平台上构建一个完整的应用,涉及到网络请求、数据解析、UI设计和用户交互等多个方面。同时,它也可以作为一个基础,为开发者提供灵感,以实现...
在Android开发中,源码学习是提升技术深度的重要途径。"WeatherForecast" 是一个典型的安卓应用程序,它可能用于展示天气预报信息。通过深入分析这个项目的源码,我们可以了解到许多关于Android应用开发的知识点。 ...
3. **MVVM架构**:考虑到现代Android开发趋势,WeatherForecast可能采用了Model-View-ViewModel(MVVM)架构,使业务逻辑和视图分离,提高代码的可测试性和可维护性。 4. **LiveData与ViewModel**:在MVVM中,...
【Android源码——WeatherForecast应用源码_new_20.zip】是一个包含Android应用程序源代码的压缩文件,专门针对一个名为WeatherForecast的应用。这个应用可能是用来显示天气预报信息的,因此,我们可以从源码中学习...
总的来说,这个WeatherForecast应用源码为学习小程序和Android应用开发提供了实践素材,特别是对于那些对天气预报应用开发感兴趣的开发者,他们可以从源码中学习如何整合API、处理网络请求、设计用户界面以及优化...
标题中的"WeatherForecast_java_WeatherForecast_"表明这是一个关于Java编程的天气预报程序,可能是用于Android平台,因为压缩包内包含了"AndroidWeatherForecast"这个文件,这通常代表Android应用的源代码。...