使用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 


使用Google Weather API 打造自己的 Android 天气应用,,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。