Android利用Google Weather API來製作自己的天氣應用

來源:互聯網
上載者:User

背景
我們需要簡單的訪問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解析來輕鬆製作許多功能

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.