代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
Java
】
通过google API获取天气信息
作者:
Dezai.CN
/ 发布于
2013/7/1
/
582
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); List<Weather>weatherList = 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; } }
试试其它关键字
I获取天气信息
同语言下
.
List 切割成几份 工具类
.
一行一行读取txt的内容
.
Java PDF转换成图片并输出给前台展示
.
java 多线程框架
.
double类型如果小数点后为零则显示整数否则保留两位小
.
将图片转换为Base64字符串公共类抽取
.
sqlParser 处理SQL(增删改查) 替换schema 用于多租户
.
JAVA 月份中的第几周处理 1-7属于第一周 依次类推 29-
.
java计算两个经纬度之间的距离
.
输入时间参数计算年龄
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
Dezai.CN
贡献的其它代码
(
4037
)
.
多线程Socket服务器模块
.
生成随机密码
.
清除浮动样式
.
弹出窗口居中
.
抓取url的函数
.
使用base HTTP验证
.
div模拟iframe嵌入效果
.
通过header转向的方法
.
Session操作类
.
执行sqlite输入插入操作后获得自动编号的ID
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3