此Adapter(SimpleCursorAdapter)是Android專門為了連接數(shù)據(jù)庫(kù)與視圖而產(chǎn)生的.此例中借助ListView體現(xiàn)SimpleCursorAdapter的用法。因?yàn)?,ListView在android中是比較常用的視圖組件,不論是靜態(tài)還是動(dòng)態(tài)都可以在其上顯示。當(dāng)然,在實(shí)際的android項(xiàng)目中需要顯示的數(shù)據(jù)一般都是動(dòng)態(tài)從數(shù)據(jù)庫(kù)表中獲取的。而SimpleCursorAdapter就是將從數(shù)據(jù)庫(kù)表中獲取的數(shù)據(jù)顯示到ListView的橋梁。 在做的時(shí)候,可以將SimpleCursorAdapter與前面的SimpleCursorAdapter進(jìn)行對(duì)比一下,你會(huì)發(fā)現(xiàn)二者的使用非常相似: 1.在new xxxAdapter時(shí)候, 如下 ,紅色字體, SimpleCursorAdapter adapter = new SimpleCursorAdapter( this, android.R.layout.simple_expandable_list_item_1, cursor, new String[]{People.NAME}, new int[]{android.R.id.text1} ); SimpleAdapter adapter = new SimpleAdapter( this, allInfos , R.layout.simple_adapter_view, new
String[]{"img","name","phone","region"}, new
int[]{R.id.info_img,R.id.info_name,R.id.info_phone,R.id.info_region} ) 紅色字體部分,即二者的數(shù)據(jù)源類型不同,SimpleCursorAdapter 的數(shù)據(jù)源是一個(gè)從數(shù)據(jù)庫(kù)表中查詢出來(lái)的數(shù)據(jù)集合cursor;而SimpleAdapter的數(shù)據(jù)源allInfos 是list集合(當(dāng)然也可以是數(shù)組等),可以看到一個(gè)是動(dòng)態(tài)一個(gè)是靜態(tài)的數(shù)據(jù)。 這里使用的SimpleCursorAdapter只是一個(gè)簡(jiǎn)單的例子,用的是系統(tǒng)表,當(dāng)然你可以自己建立一個(gè)表應(yīng)用在此例中,activity代碼: public class SimpleCursorAdapterTest extends Activity{ private ListView listView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); listView = new ListView(this); Cursor myCursor = getContentResolver().query(People.CONTENT_URI, null, null, null, null);//是系統(tǒng)里的表 startManagingCursor(myCursor); ListAdapter listAdapter = new SimpleCursorAdapter( this, //上下文 android.R.layout.simple_expandable_list_item_1, //要顯示的listview的樣式 myCursor, //數(shù)據(jù)源 new String[]{People.NAME}, //所對(duì)應(yīng)的字段 new int[]{android.R.id.text1} //上面的字段顯示在界面上的那個(gè)控件 ); listView.setAdapter(listAdapter); setContentView(listView); } } 值得注意的一點(diǎn),不要忘了在AndroidManifest.xml文件中聲明訪問(wèn)系統(tǒng)表的權(quán)限:<uses-permission android:name="android.permission.READ_CONTACTS"/> 如果該系統(tǒng)表中還沒(méi)有數(shù)據(jù),此時(shí),所顯示出來(lái)的ListView是空的,沒(méi)有數(shù)據(jù)的。
|
|