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

标签: Android
发布时间: 2014/4/14 16:51:58

介绍

如果你想制作自己的Android天气应用,那么你来对地方了.没有比使用Google Weather API XML解析更简单的方法了.所以你只需要知道如何解析XML即可.

背景

我们需要简单的访问XML来解析XML文档.因此,你只要知道在XML文档代码里结果的位置地方,然后解析它就很简单.举个例子,在下面这张图里,我们想要知道有关突尼斯的斯法克斯的天气:

代码

一开始,我们需要指定我们想要知道天气的城市或者州.

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解析来轻松制作许多功能.


赞助商