天气预报(Android版)

今天终于把天气预报给弄出来了,心里小小的高兴一下,虽然这东西网上早就有了,但那毕竟是别人的。在想做这个之前,以为

天气预报软件好高深,不知道从何下手。不过现在想想这东西也不是想象中那么复杂。最主要的是自己亲手做出来,感觉挺很爽的,要是有真机就更好了!

OK,在下面我把天气预报简单叫weather好了,在做weather之前我在网上有搜了一下有关它的资料,知道weather一般的是解析XML文档来获取信息。

本文源码下载:

免费下载地址在

用户名与密码都是

具体下载目录在 /pub/Android源码集锦/2011年/12月/天气预报(Android版)/

可能还有别的方式Json....所以就有了之前两篇学习解析XML的学习天气预报Dom解析 (  )  和  学习SAX解析 (  ) 以这两篇学习做铺垫。然

后再结合自己学的Android知识就可以完成本次小程序。本次写的weather里主要涉及到AutoCompleteTextView,ListView以及

SAX技术 。先上weather运行时的效果图:

           

天气预报(Android版)

天气预报(Android版)

天气预报(Android版)

weather布局很丑,哎,俺没啥艺术细胞,只想到这样的布局,重在功能实现上。这次是用SAX解析XML,同样是用到了谷歌提供

的天气接口。在上次的学习SAX解析 (中里面我做的是解析本地的XML,很顺利。在做weather的同时我顺便写了个控制台版的天气

预报,发现了有同样的问题:结果只出现温度,而中文信息却是乱码。在这上面我纠结了大半天后来才知道为什么,原因是编码不

对,最后换成了GBK编码就搞定了 下面是代码片段。

              URL url = new URL(path);   URLConnection conn = url.openConnection();   InputStreamReader isr = new InputStreamReader(conn.getInputStream(),"GBK"); //GBK编码就OK,用utf-8还是出现乱码    BufferedReader br = new BufferedReader(isr);   InputSource is = new InputSource(br);   xmlReader.parse(is);  

另外,ListView用SimpleAdapter加载图片,这个适配器的数据是键值对(Map)形式的,如果map中包含有图片,而这个图片不是在

drawable中存在的,比如网络图片,simpleAdapter本身就不支持的。除非你重写适配器(Adapter),

或者用ViewBinder 具体用法见API文档

 

SimpleAdapter的外部数据(external clients)可以使用这个类将值绑定到视图。你应该用这个类绑定值到那些不能直接通过SimpleAdapter支持的视图,或者改变通过SimpleAdapter支持绑定的方法的视图。 

也就是说simpleAdapter不能直接支持ImageView,像TextView就直接支持,不用大费周章绑定数据。

下面是主类继承Activity

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wyfxyz.html