当前位置: 代码迷 >> Android >> 使用Google Weather API 制作自己的 Android 天气应用
  详细解决方案

使用Google Weather API 制作自己的 Android 天气应用

热度:142   发布时间:2016-04-28 06:30:29.0
使用Google Weather API 打造自己的 Android 天气应用

原文链接   http://www.codeproject.com/Tips/746968/How-to-Make-Your-Own-Android-Weather-Application-U

源代码  Download app - 2.1 MB


简介

如果你想做一个简单的Android天气应用,那你就来对地方了。如果你使用Xml 解析 Google Weather API 这将会非常简单。因而你只需要了解Xml解析就可以了

学习前提

我们需要使用SAX解析Xml文档,所以你只要知道如何目标位置和地点的在Xml文档中的代码与简单的解析就够了

例如,我们想要得到如下图所示的 关于  Sfax Tunisia 的天气

代码部分

在开始之前, 为了得到需要的天气情况,我们需要指定 City或者 State

String c = city.getText().toString();        String s = state.getText().toString();        StringBuilder URL = new StringBuilder(BaseURL);         URL.append(c+","+s);        String fullUrl= URL.toString();        try        {            URL website= new URL(fullUrl);            //getting xmlReader to parse data            SAXParserFactory spf= SAXParserFactory.newInstance();            SAXParser sp = spf.newSAXParser();            XMLReader xr = sp.getXMLReader() ;            HandlingXmlStuff doingWork = new HandlingXmlStuff();            xr.setContentHandler(doingWork);            xr.parse(new InputSource(website.openStream()));            String information = doingWork.getInformation();            tv.setText(information);        }        catch(Exception e)        {            tv.setText("error");        } 

在此之后, 我们需要开始解析Xml

public class HandlingXmlStuff extends DefaultHandler {XMLDataCollected info = new XMLDataCollected();public String getInformation(){    return info.dataToString();}    @Override    public void startElement(String uri, String localName, String qName,            Attributes attributes) throws SAXException {        if (localName.equals("city"))        {            String city=attributes.getValue("data");            info.setCity(city);        }else if (localName.equals("temp_f")){            String t = attributes.getValue("data");            int temp = Integer.parseInt(t);            info.setTemp(temp);        }          }} 

我们需要指定数据模型与使用到的方法

public class XMLDataCollected {    int temp= 0;    String city=null ;     public void setCity(String c)    {        city= c ;     }    public void setTemp(int t )    {        temp = t ;    }    public String dataToString()    {        return "In"+city+" the current Temp in F is "+ temp+" degrees";    }} 

结束语

在这个案例中,你学会了如何在Android 应用中使用XML解析,这将允许你更方便的在应用中实现许多特性

License

本文以及附属代码资料均属于此协议---The Code Project Open License (CPOL)


PS:感觉翻译的有点别扭,有大神给指点指点么 o(∩_∩)o 


  相关解决方案