沒有課的一、四,可以專心寫寫Android,變成是下班後也滿期待的事,本篇會是ATM專案的小整理,看看過去為這個專案學習了多少東西,短短幾周,其實還滿踏實的,儘管常常還是上課需要吃翻譯年糕。實做下來,還是體驗到因為跑不出來,有bug才真的知道問題在哪邊,也是一種學習吧!

前兩回分期付款做完了JSONArray解析,接下來就要煩惱怎麼貼上去畫面上。之前,在Android開發者cosplay之cursor/adapter初探 試做過把query出來的cursor用SimpleCursorAdapter插入畫面中,同樣的概念,只是這次是要把整理好的JSONArray用SimpleAdapter插入畫面中。

方法步驟:

1. 設定一個新的Layout把ListView每一層想要的格式設計好
2. 調整AsyncTask的回傳值
3. 利用Adapter把JSONArray插入ListView
4. 來跑模擬器

開工!!

1. 設定一個新的Layout把ListView每一層想要的格式設計好

這個簡單,先去新增一個Android xml在layout裡面,把想要的格式設定,各自定義TextView id,之後from to的時候要一一對上。



2. 調整AsyncTask的回傳值

上回談到的設定for (int i = 0; i<array.length(); i++),人類的話就是設定一個i值,比整個陣列長度小,每一次增加1,去取得JSON物件 JSONObject obj = array.getJSONObject(i);
也就是說,每一次跑完一個 "i",會得到一組JSON物件,全部跑完整個叫做JSONArray命名較data。

這個data,要投射到ListView上的時候會遇到困難,因為在doInBackground不能存取畫面上的物件!! (非常容易犯錯) ,所以必須把doInBackground產生的adapter,當作結果值傳到onPostExecute去。





3. 利用Adapter把JSONArray插入ListView

最後,用丟出來的adapter把資料丟到ListView上去。就搞定啦!
protected void onPostExecute(SimpleAdapter adapter) {
super.onPostExecute(adapter);
ListView list = (ListView)findViewById(R.id.history_list);
list.setAdapter(adapter); 
4. 來跑模擬器!!

整件事情現在整理起來是很恐怖的!! 一個簡單的功能,背後代表了相當多的邏輯和程式、畫面的設計,從登入開始,帳號密碼按下登入後,到資料庫去驗證,正確的話在進入下一個功能頁,進入功能頁,按下歷史交易,在連上網去查資料,查到JSON陣列,在解析需要的資料,同時去設計想要呈現的畫面,組成ListView,最後把全部查完的資料,插入ListView中,完成這個功能。Gosh!! 真的超多工作!!
整件事情我用圖式表示了,這個最簡單的功能展示,開始活用過去學到的多數程式,算是一個集小成了。


以上。開始期待明天的新東西!!

arrow
arrow
    全站熱搜

    brianc18 發表在 痞客邦 留言(0) 人氣()