Android天氣預報程式(一)
功能需求:
1.可以羅列出全國所有的省 市 縣
2.可以檢視全國任意城市的天氣資訊
3.可以自由地切換城市,去檢視其他城市的天氣
4.提供手動更新以及後臺自動更新天氣的功能
這裡我們準備使用中國天氣網提供的API介面
(如果你是在瀏覽器上直接訪問的話,有可能會得到一個錯誤提示,不用擔心,這是因為瀏覽器認為伺服器應該返回一個XML格式的資料,但實際上伺服器返回的資料並不是XML格式所導致的,右鍵檢視網頁原始碼就可以看到伺服器返回的真實資料了)
伺服器會返回一段文字資訊,其中包含了中國所有省份名稱以及省級代號,如下所示:
01|北京,02|上海,03|天津,04|重慶,05|黑龍江,06|吉林,07|遼寧,08|內蒙古,09|河北,10|山西,11|陝西,12|山東,13|新疆,14|西藏,15|青海,16|甘肅,17|寧夏,18|河南,19|江蘇,20|湖北,21|浙江,22|安徽,23|福建,24|江西,25|湖南,26|貴州,27|四川,28|廣東,29|雲南,30|廣西,31|海南,32|香港,33|澳門,34|臺灣
不同省份之間以逗號分隔,省份名稱和省級代號之間以單豎線分隔。
那麼如何才能知道某個省內有哪些城市呢?
也就是說,只需要將省級代號新增到city的後面就行了,現在伺服器返回的資料如下:
2801|廣州,2802|韶關,2803|惠州,2804|梅州,2805|汕頭,2806|深圳,2807|珠海,2808|佛山,2809|肇慶,2810|湛江,2811|江門,2812|河源,2813|清遠,2814|雲浮,2815|潮州,2816|東莞,2817|中山,2818|陽江,2819|揭陽,2820|茂名,2821|汕尾,2822|東沙島
280101|廣州,280102|番禺,280103|從化,280104|增城,280105|花都,280106|天河
這次,伺服器返回的資料非常簡短:
280102|101280102
其中,後半部分的101280102就是番禺所對應的天氣代號了
這時候再去訪問查詢天氣介面,將相應的天氣代號填入即可,介面地址如下:
這樣,伺服器就會把番禺當前的天氣資訊以JSON格式返回給我們了,如下所示:
{"weatherinfo":{"city":"番禺","cityid":"101280102","temp1":"12℃","temp2":"24℃","weather":"晴","img1":"n0.gif","img2":"d0.gif","ptime":"18:00"}
其中city表示城市名,cityid表示城市對應的天氣代號,temp1和temp2表示氣溫是幾度到幾度,weather表示今日天氣資訊的描述,img1和img2表示今日天氣對應的圖片,ptime表示天氣釋出的時間。