在之前連續對ListVew作了逐步深入的探討,對於手持螢幕來講,其實可以比較簡單,如果別人願意付錢,不在乎將代碼再些一次,這是用戶端的開發和複雜伺服器的開發不同的地方。當然各人有各人的看法。絕大部分情況下,一個list元素可能左右各有一個widget就差不多,迴歸簡約風格,這也是小尺寸螢幕和手指操作的特點。
在資料的傳遞,Java裡面,具有<Key,Value>的Hash是非常重要的,可以方便增/刪/改/查,如果我們不使用資料庫儲存,或者將資料存放在記憶體中,<Key,Value>是最常用的。下面的例子來自於目前網上一個Android教程視頻(mars-droid),我們將關注如何將HashMap的資料放入到ListAdapter中。
HashMap資料放入ListAdapter中
在這個例子中<key,value>是使用者名稱字和使用者IP。
步驟1:建立Android XML檔案
一個Android XML,裡面含有一個ListView,建立一個Android XML檔案,裡面描述每個ListView單元的水平布局的Layout,左邊是一個TextView,用於存放user_name,右邊一個TextView,用於存放user_ip。即分別對應key和vaule。
步驟2:初始化HashMap中的資料
ArrayList<HashMap<String,String>> listdata =
new ArrayList<HashMap<String,String>>();
HashMap<String,String> map1 = new HashMap<String,String>();
HashMap<String,String> map2 = new HashMap<String,String>();
... ...
map1.put("user_name","張三");
map1.put("user_ip","192.168.0.1");
map2.put("user_name","李四");
map2.put("user_ip","192.168.0.2");
... ...
listdata.add(map1);
listdata.add(map2);
... ...
步驟3:設定ListView的適配器
SimpleAdapter listAdapter = new SimpleAdapter(this, listdata,
//第2個參數表示資料來源
R.layout.list_entry, //對應描述list entry的XML檔案
new String[]{"user_name","user_ip"},
//分別對應HashMap中的user_name,和user_ip的資料
new int[]{R.id.username,R.id.userip}); //表明上面HaspMap中的user_name以及user_ip資料方便和layout中具體的widget,R.id.username以及R.id.userip對應。
setListAdapter(listAdapter);
這樣就可以了,其餘的按Android學習筆記(十一):Activity-ListView中最基礎的介紹。由於目前硬體水平的發展,包括電池能力的提供,簡潔明了的方式,比起那些繁複的處理要好,無須過渡考慮資源問題,我們只需在程式效率和編程藝術中取得平衡。說白了程式好不好,穩定不穩定是軟體的頭等問題,CPU能力和電源是ODM/OEM廠家頭等問題。
ListAdapter:CursorAdapter
一般來講,我們可以使用ArrayAdapter來適用很多情況,還有其他的Adapter,使用方式類似,但是CursorAdapter有些不一樣,通過newView()和bindView(),如果沒有建立,使用newView(),然後調用bindView(),如果已經建立,使用bindView()。
相關連結:我的Andriod開發相關文章