android通过google API获取天气信息

复制代码 代码如下:

public class WeatherActivity extends Activity {

private TextView txCity;

private Button btnSearch;

private Handler weatherhandler;

private Dialog progressDialog;

private Timer timer;

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

timer = new Timer();

txCity = (TextView)findViewById(R.id.txCity);

btnSearch = (Button)findViewById(R.id.btnSearch);

progressDialog = new AlertDialog.Builder(this)

.setTitle("读取数据中")

.setMessage("正在加载数据,请稍等")

.create();

weatherhandler = new Handler(){

public void handleMessage(Message msg){

final String cityName = txCity.getText().toString().trim();

searchWeather(cityName);

progressDialog.hide();

}

};

btnSearch.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

progressDialog.show();

timer.schedule(new TimerTask() {

@Override

public void run() {

Message msg = new Message();

msg.setTarget(weatherhandler);

msg.sendToTarget();

}

},100);

}

});

}

private void searchWeather(String city){

SAXParserFactory spf = SAXParserFactory.newInstance();

try {

SAXParser sp = spf.newSAXParser();

XMLReader reader = sp.getXMLReader();

XmlHandler handler = new XmlHandler();

reader.setContentHandler(handler);

URL url = new URL("http://www.google.com/ig/api?hl=zh-cn&weather="+URLEncoder.encode(city));

InputStream is = url.openStream();

InputStreamReader isr = new InputStreamReader(is, "GBK");

InputSource source = new InputSource(isr);

reader.parse(source);

ListweatherList = handler.getWeatherList();

TableLayout table = (TableLayout)findViewById(R.id.table);

table.removeAllViews();

for(Weather weather:weatherList){

TableRow row = new TableRow(this);

row.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT));

row.setGravity(Gravity.CENTER_VERTICAL);

ImageView img = new ImageView(this);

img.setImageDrawable(loadImage(weather.getImageUrl()));

img.setMinimumHeight(80);

row.addView(img);

TextView day = new TextView(this);

day.setText(weather.getDay());

day.setGravity(Gravity.CENTER_HORIZONTAL);

row.addView(day);

TextView temp = new TextView(this);

temp.setText(weather.getLowTemp()+"℃-"+weather.getHighTemp()+"℃");

temp.setGravity(Gravity.CENTER_HORIZONTAL);

row.addView(temp);

TextView condition = new TextView(this);

condition.setText(weather.getCondition());

condition.setGravity(Gravity.CENTER_HORIZONTAL);

row.addView(condition);

table.addView(row);

}

} catch (Exception e) {

e.printStackTrace();

new AlertDialog.Builder(this)

.setTitle("解析错误")

.setMessage("获取天气数据失败,请稍候再试。")

.setNegativeButton("确定", null)

.show();

}

}

private Drawable loadImage(String imageUrl) {

try {

return Drawable.createFromStream((InputStream) new URL("http://www.google.com/"+imageUrl).getContent(), "test");

} catch (MalformedURLException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

return null;

}

}

android调用在线天气服务,android通过google api获取天气信息示例相关推荐

  1. android自动获取天气,android通过google api获取天气信息示例

    android通过google API获取天气信息 public class WeatherActivity extends Activity { private TextView txCity; p ...

  2. python 获取天气_Python实现从百度API获取天气的方法

    本文实例讲述了Python实现从百度API获取天气的方法.分享给大家供大家参考.具体实现方法如下: __author__ = 'saint' import os import urllib.reque ...

  3. Android开发:基于原生API获取位置信息、卫星信号个数及参与定位的卫星个数

    目录 概述 权限申请及开启GPS 调用原生API进行定位 获取设备收到的卫星信号个数 获取用于定位的卫星信号个数 成果图 概述 最近在做室内外无缝定位的相关demo,室外定位中,GNSS定位方法具有精 ...

  4. (更新源码)AndroidStudio新手开发:天气app(百度地图api+和风天气api+城市查询+折线展示)

    AndroidStudio新手开发:天气app(百度地图api+和风天气api+城市查询+折线展示) 1.内容简介 2.环境配置 3.导入他人demo 4.AS项目分析 5.天气项目流程 6.数据探寻 ...

  5. 微信小程序使用百度api获取天气信息 —— 微信小程序教程系列(16)

    之前已经介绍过,如何使用百度地图api来获取地理位置信息 微信小程序的百度地图获取地理位置 -- 微信小程序教程系列(15) 下面介绍使用百度api来获取天气信息. 1> 第一步:先到百度开放平 ...

  6. 4月12日云栖精选夜读:用Google API 提取名片信息

    平时收到的名片太多,想一一整理却又没时间这么办?赶紧点击<用Google API 提取名片信息>这篇文章吧,看看作者是如何简简单单用手机给名片拍个照就搞定的,剩下工作的交给Google A ...

  7. 渗透工具ldapsearch-ad:Python3 脚本通过LDAP服务快速从域控制器获取各种信息。

    Git地址: yaap7/ldapsearch-ad:Python3 脚本,用于通过他的 LDAP 服务从域控制器快速获取各种信息. (github.com) ldapsearch-ad.py Pyt ...

  8. android如何开发ui服务,Android UI-对Activity工作流程的理解(一)

    概述 在android studio创建一个新项目的时候,或者初学者在刚踏入android开发的时候,都会在首先创建一个MainActivity.根据一般的理解,Activity的就相当于一个界面的入 ...

  9. Android中基于心知天气API获取天气信息

    Android中基于心知天气获取天气信息 JSON JSON简介 JSON对象 JSON数组 JSON解析 Android中获取天气 获取天气的流程 获取心知天气的API key 获取心知天气的API ...

最新文章

  1. Fisheye camera
  2. SSM项目的数据库密码加密方案
  3. Android启动模式详解
  4. iOS UIView成像流程
  5. flex布局实现叠在另一个div之上_如何让一个div在另一个div的上面,求高手指点...
  6. Spring Security——简单第三方OAuth2登录自动配置——GitHub登录DEMO
  7. javascript与xml实例应用
  8. python 删除特定行数据_怎么用 Python 做数据分析实例
  9. 数据库每日一题 2020.05.07
  10. GaussDB(for openGauss)让数据“存得下、算得快、算得准”
  11. freecplus框架-PostgreSQL数据库操作
  12. ASimpleCache使用感受
  13. mysql-front5.1的注册码
  14. is 32-bit instead of 64-bit 亲测可用
  15. 在线编辑器,富文本编辑器
  16. iconfont阿里矢量图标库的引入与使用
  17. ASP.NET通用房屋租赁管理系统源码
  18. matlab coder分析
  19. 常用软件国内源镜像地址大全
  20. 《孙子兵法》的逻辑结构

热门文章

  1. java实现在线预览功能(支持xlx,word,ppt,dwg等格式转Pdf)
  2. 小龙虾的做法大全 你想知道的做法全部安排上
  3. 2018面试总结(阿里巴巴蚂蚁金服、饿了么、人人车等)
  4. 【车载】ABS/BAS/BA防抱死制动系统
  5. 2018年天源迪亚杯博弈赛后的感受
  6. 王者荣耀服务器维护8月23日,王者荣耀8月23日更新公告:其它系统优化及BUG修复...
  7. 赋能 打造应对不确定性的敏捷团队 pdf_赋能——打造应对不确定的敏捷团队|《赋能》斯坦利...
  8. 捷信总经理Ondrej:愿为中欧企业间的长远发展与互惠共赢而努力
  9. PS快速抠图、换背景,让抠图速度快…
  10. 十种获取被动收入的方法