使用Google Weather API 打造自己的 Android 天气应用
原文链接 http://www.codeproject.com/Tips/746968/How-to-Make-Your-Own-Android-Weather-Application-U
简介
如果你想做一个简单的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
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。