Adapter——適配器的使用

Adapter

將數據以列表的形式顯示到屏幕上,需要三步:

1)      需要一個ListView

2)      準備好要顯示的數據,這些數據可能是數組,元素是map的集合,從數據庫或者內容提供者中查詢獲得的遊標

3)      需要一個將數據逐條讀入然後裝入到相應列表項的適配器,通過適配器可以設置列表項的佈局以及綁定要顯示的數據

根據要顯示的數據源的不同,適配器常用的有如下三種,以下代碼都是基於ListActivity,該對象本身持有一個listView對象,該對象提供給了一些方法來管理listview對象。

ArrayAdapter

數組適配器,用於顯示一個數組,用法如下:

String []data={"google","amazon","baidu"};
ArrayAdapter adapter=new ArrayAdapter(this, R.layout.array, data);
this.setListAdapter(adapter);

SimpleAdapter

用於顯示靜態數據,一般是一個list集合,list中的元素是map<String, object>類型,每個map對應一個列表項,map中的每個元素對應着一個列名和列值,用法如下:

List <Map<String,Object>> list=new ArrayList<Map<String,Object>>();
	Map<String,Object> item1=new HashMap<String,Object >();
	Map<String,Object> item2=new HashMap<String,Object >();
	item1.put("Name", "hulu");
	item1.put("Age", 23);
	item1.put("genda", "male");
	item1.put("major", "computer");
	item2.put("Name", "limeng");
	item2.put("Age", 25);
	item2.put("genda", "male");
	item2.put("major", "program");
	list.add(item1);
	list.add(item2);
	
	SimpleAdapter adapter=new SimpleAdapter(this,list,
				R.layout.activity_main,
				new String[]{"Name","Age"},
				new int[]{R.id.text1,R.id.text2});
this.setListAdapter(adapter);

SimpleCursorAdapter

用於顯示查詢結果集的遊標,數據源通常是一個SQLite數據庫或者是一個內容提供者,用法如下:

ContentResolver resolver=this.getContentResolver();
	Cursor cursor=resolver.query(People.CONTENT_URI, null, null, null, null);
	this.startManagingCursor(cursor);
	SimpleCursorAdapter adapter=new SimpleCursorAdapter(this, R.layout.activity_main, cursor,
				new String[]{People.NAME,People.NUMBER}, 
				new int[]{R.id.text1,R.id.text2});
	this.setListAdapter(adapter);

發佈了23 篇原創文章 · 獲贊 0 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章