加入RUN!PC粉絲團
最近新增的精選文章
 
最多人點閱的精選文章
 
 
精選文章 - 開發技術
分享到Plurk
分享到FaceBook
 
手機程式設計入門與應用 Android、iPhone、Windows Mobile─ 線上查詢匯率
文/陳彥文、彭亦暄 2010/9/11 下午 07:37:52

手機程式設計入門與應用─鈴聲控制範例
手機程式設計入門與應用─錄音程式範例
手機程式設計入門與應用─音樂播放器範例
手機程式設計入門與應用─影片播放器範例
手機程式設計入門與應用─繪圖板範例
手機程式設計入門與應用─觸控操作範例
手機程式設計入門與應用─Matrix應用範例
手機程式設計入門與應用─線上查詢匯率
手機程式設計入門與應用─擲骰子遊戲
手機程式設計入門與應用─來電黑名單
本節範例將解析台灣銀行的即時匯率網頁內容(http://rate.bot.com.tw/Pages/Static/UIP003.zh-TW.htm),將網頁內的匯率資料整理好取出。




範例程式當中以台幣為主來讓使用者選擇不同貨幣的幣值查詢,利用Spinner元件讓使用者選擇要查詢的貨幣。




接著按下【匯率】按鈕後利用【AlertDialog】將結果顯示出來。




Spinner設定如下:




設定好匯率選單後,接著設計程式外觀,在本範例中利用【RelativeLayout】來完成,設計如下:




在程式部分則是利用【HttpURLConnection】將台灣銀行網頁資料讀進來做分析,抓取網頁的程式碼如下:




先建立一個URL物件,WebURL為上述台灣銀行查詢匯率的網址,接著設定HttpURLConnection後建立連線,由於預設Request方法為GET,若要將Requet方法改成其他的方法只要將「【setRequestMethod("GET")】」中的GET改成如POST、HEAD、OPTIONS、PUT、DELETE和TRACE這幾個方法即可,最後利用【connect()】建立連線。

建立連線後,程式必須將網頁資料讀進一個Buffer中,以便後續分析,程式如下:




建立一BufferReader物件,讀取目標為【httpUrlconnection.getInputStream()】,接著將網頁資料利用迴圈方式一行一行的將網頁資料儲存在自定義的urlData字串當中,抓取下來的資料為下圖13.1.4,即為網頁內容。圖為內容的一部分,為圖13.1.1匯率表格的部分。




將網頁內容抓取完畢後,接著要分析我們要的資料,從圖13.1.4可看到各個貨幣和匯率的原始碼,各個貨幣的匯率包在…中,而依序為美金現金匯率的買入和賣出、即期匯率的買入和賣出,接著為港幣現金匯率的買入和賣出、即期匯率的買入和賣出。

依此類推,所以我們將「【】」設為起點,「【】」設為終點,抓取中間的值依序以每四個為一貨幣存入我們定義的List當中,分析網頁的程式碼如下:




每次擷取利用【indexOf】方法依照我們設定的起點和終點將urlData的位置給存入start和end中,接著利用【substring】方法將起點和終點之間的字串,即匯率,儲存至List中。




完整的程式碼如下:




需注意!此程式設計上不會自動更新匯率資料,所以使用者若未重新啟動程式,顯示的資料會以開啟時的資料為主。

程式中的List方式是依照網頁資料從上到下的貨幣順序所建立上去,所以當使用者選擇查詢貨幣的選單時,是直接對應到List同一個index上,所以再Spinner和List加入資料的順序必須一致才不會抓錯資料。本範例用的方法只是一種簡單達到目的的方式,更有彈性的做法則是將各個貨幣以及相對的匯率幣值關連起來,這樣可讓程式更容易擴充現有的功能。


線上查詢匯率展示


【本文範例來自《 手機程式設計入門與應用 Android、iPhone、Windows Mobile》】