SimpleAdapter
SimpleAdapter 是一個(gè)映射靜態(tài)數(shù)據(jù)和 XML 文件中定義的視圖的簡單適配器层皱。你可以指定支持列表的數(shù)據(jù)為 Map 類型的 ArrayList办悟。每個(gè) ArrayList 中的實(shí)體對應(yīng)列表中的一行莲趣。Map 集合中包含每一行的數(shù)據(jù)。我們還要指定一個(gè) XML 文件(該文件定義了用于將行呈現(xiàn)出來的視圖)衰伯,和一個(gè)映射特定視圖的 Map 集合驼卖。綁定數(shù)據(jù)和視圖發(fā)生在兩個(gè)階段筏餐。首先,如果SimpleAdapter.ViewBinder
可用捂寿,setViewValue(android.view.View, Object, String)
被調(diào)用口四。如果返回值為真,則綁定已經(jīng)發(fā)生秦陋。反之蔓彩,如下視圖會依次進(jìn)行嘗試:
- 一個(gè)繼承了 Checkable(例如:CheckBox)的視圖。預(yù)期的綁定值是一個(gè)布爾類型踱侣。
- TextView粪小。預(yù)期的綁定值是一個(gè)字符串,
setViewText(TextView, String)
被調(diào)用抡句。 - ImageView探膊。預(yù)期的幫定制是一個(gè)資源 id 或一個(gè)字符串,
setViewImage(ImageView, int)
或setViewImage(ImageView, String)
被調(diào)用待榔。
如果沒有找到合適的綁定逞壁,則拋出IllegalStateException
。
SimpleCursorAdapter
SimpleCursorAdapter 是一個(gè)映射游標(biāo)中的列和在 XML 文件中定義的 TextView 或 ImageView 的簡單適配器锐锣。你可以指定你需要的列腌闯,你需要展示該列的視圖和定義視圖樣式的 XML 文件。綁定發(fā)生在兩個(gè)階段雕憔。首先姿骏,如果SimpleCursorAdapter.ViewBinder
可用,setViewValue(android.view.View, android.database.Cursor, int)
被調(diào)用斤彼。如果返回值為真分瘦,則綁定已經(jīng)發(fā)生。如果返回值為假且待綁定的視圖是 TextView琉苇,setViewText(TextView, String)
被調(diào)用嘲玫。如果返回值為假且待綁定的視圖是 ImageView,setViewImage(ImageView, String)
被調(diào)用并扇。如果沒有找到合適的綁定去团,則拋出IllegalStateException
。如果該適配器配合過濾器使用,如AutoCompleteTextView
中的實(shí)例土陪,你可以使用SimpleCursorAdapter.CursorToStringConverter
和FilterQueryProvider
接口控制過濾進(jìn)程昼汗。參考convertToString(android.database.Cursor)和runQueryOnBackgroundThread(CharSequence)獲取更多信息。