Android 提供的ListView默認只有簡單的一列,而我在程序開發中,經常會遇到的問題是,希望ListView能盡量多展示一些信息給我們的用戶。所以,需要為ListView去自定義布局,例如,分為多列顯示,即生成一張數據表,這些在使用數據庫的時候是很有必要的。
當我們使用數據庫時,通過查詢,返回一個cursor對象,它指向了符合條件的第一條數據,我們可以利用Cursor來生成一個SimpleCursoradapter對象,它的構造器參數有(context c,Cursor cursor,int id,int[ ] from ,int[ ] to); 一個adapter(適配器)決定了ListView展示的信息,包括了它的布局,決定ListView以何種形式展現的參數就是 id ,from,to這3個參數,前者提供了布局文件的位置,from 給出了需要從cursor中取出的字段(文本),to則指向了地址為id的布局文件中的TextView組建序列,這樣,ListView一條記錄的布局,就是XML文件中定義好的布局,每一個字段的風格,可在XML中的TextView去定義了。
並且,我們可以看到,simpleCursorAdapter繼承自simpleadapter,這個父類也包含了自定義的功能,它的構造器包含的參數有(context c,List<?> list,int id ,int [ ] from,int [ ] to);顯然它的用法和子類是類似的,唯一的不同是數據源的不同,即它的數據來自一個list<HashMap<>>(),此list對象和cursor是比較類似的,我們將在HashMap中去產生一些鍵值對,並且每一個HashMap中都包含一條類似數據庫的記錄,同時,外圍的List持有了這些記錄,這樣這個adapter的用法就確定好了,接下來給出一段代碼,即上述
adapter的范例。