ListView項(Item)的三種佈局

李蔚蓬發表於2018-06-07

轉載自:ListView項(Item)的三種佈局使用例子


List中的item佈局有三種:

自定義的佈局,使用了相對佈局(RelativeLayout,見list_item.xml),左側一個圖片,右側上方是字型比較大的title,下方是字型稍小的description;

第二種是Android自帶的佈局(見原始碼裡的simple_list_item_2.xml),主要是一個垂直的LinearLayout,裡面包含兩個ID分別為text1、text2的TextView,這兩個TextView的字型大小不一樣,一個帶textAppearanceLarge屬性,另外一個帶textAppearanceSmall屬性;

第三種也是Android自帶的佈局(見原始碼裡的two_line_list_item.xml),主要是一個垂直的LinearLayout,裡面包含兩個ID分別為text1、text2的TextView,這兩個TextView的字型大小一樣,但每個TextView還帶一個字型加粗的屬性。


SimpleAdapter的使用:

建構函式: SimpleAdapter(Context context, List> data, int resource, String[] from, int[] to)

引數有5個:

context:也就是上下文,而Activity都是繼承於Context的,所以這個引數一般使用Activity的例項;

data:型別要為一個List的子類,且List中的每個元素都必須為Map的子類,每個Map中以有一對或多對的Key-Value對,這些值與下面的引數from有對應;

resource:這是每個List項(Item)對應的XML佈局資原始檔名,在裡面控制List項顯示的元素以及相對位置;

from:是一個字串陣列,可以理解為列名,對應於data資料中Map元素的Key值,只有包含在這個字串陣列的元素對應到Map中的Value值才能顯示到TextView中(這些TextView在最後一個引數to配置),所以這些Value值需要為字串或者有toString()的方法;

to:TextView元件ID的陣列,上面的from引數配置了Key值,而根據這個Key值從data引數裡的map取出的value值需要設定到TextView中,而這些TextView的id需要在這個陣列中配置。而且這些TextView需要在引數resource對應的XML資原始檔中配置。


相關文章