ArrayAdapter ,SimpleAdapter ,SimpleCursorAdapter 区别

数据源不同而已
1. String[]: ArrayAdapter
2. List<Map<String,?>>: SimpleAdapter
3. 数据库Cursor: SimpleCursorAdapter

使用ArrayAdapter(数组适配器)顾名思义,需要把数据放入一个数组以便显示。(文/java
android.R.layout.simple_list_item_1是系统定义好的布局文件只显示一行文字

SimpleAdapter能定义各种各样的布局出来,可以放上ImageView(图片),还可以放上Button(按钮),CheckBox(复选框)
//=============================SimpleAdapter==========================

  1. public class List3 extends ListActivity {  
  2.       
  3.     List<Map<String, Object>> list;  
  4.   
  5.     @Override 
  6.     public void onCreate(Bundle savedInstanceState) {  
  7.       super.onCreate(savedInstanceState);  
  8.         
  9.       list = getListForSimpleAdapter(); //list为数据集合
  10.   
  11.       SimpleAdapter    adapter = new SimpleAdapter(this, list,  
  12. R.layout.item,  
  13.       new String[] { "BigText", "LittleText", "img" },  
  14. new int[] { R.id.BigText,R.id.LittleText, R.id.img }); 
  15.         //可以想成把一个放好数据的布局文件放入本界面中  
  16.       setListAdapter(adapter);      
  17.   
  18.     }  
  19.   
  20.     private List<Map<String, Object>> getListForSimpleAdapter() {  
  21.     List<Map<String,Object>> list=newArrayList<Map<String,        Object>>(3);  
  22.           Map<String, Object> map = new HashMap<String, Object>();  
  23.           map.put("BigText", "Android");  
  24.           map.put("LittleText", "Google phone.");  
  25.           map.put("img", R.drawable.n);  
  26.           list.add(map);  
  27.   
  28.           map = new HashMap<String, Object>();  
  29.           map.put("BigText", "Lenovo");  
  30.           map.put("LittleText", "Ophone");  
  31.           map.put("img", R.drawable.o);  
  32.           list.add(map);  
  33.   
  34.           map = new HashMap<String, Object>();  
  35.           map.put("BigText", "Droid");  
  36.           map.put("LittleText", "Motorola");  
  37.           map.put("img", R.drawable.droid);  
  38.           list.add(map);  
  39.   
  40.         
  41.       return list;  
  42.     }  
  43. }
复制代码

//==============================SimpleCursorAdapter===================

注意:SimpleCursorAdapter是和数据库有关的东西,而sqlite 数据库所要求的 自动增长的 id  必须是 _id这中形式

  1. public class List2 extends Activity {  
  2.       
  3.     private ListView listView;  
  4.     @Override 
  5.     protected void onCreate(Bundle savedInstanceState) {  
  6.         super.onCreate(savedInstanceState);  
  7.   
  8.         listView=new ListView(this);  
  9.       Cursorc=getContentResolver().query(People.CONTENT_URI,  
  10.       null, null, null, null);        
  11.         startManagingCursor(c);  
  12.   
  13.         ListAdapter adapter = new SimpleCursorAdapter(this,  
  14.                 android.R.layout.simple_list_item_1,  
  15.                 c,  
  16.                 new String[] {People.NAME} ,  
  17.                 new int[] {android.R.id.text1});  
  18.         listView.setAdapter(adapter);  
  19. setContentView(listView);  
  20. }  
复制代码

//====================ArrayAdapter===================================

  1. public class List1 extends  Activity {  
  2.   
  3.     private ListVeiw listView;  
  4.     @Override 
  5.     public void onCreate(Bundle savedInstanceState) {  
  6.   super.onCreate(savedInstanceState);  
  7.   
  8.       listView=new ListVeiw(this);  
  9.       listView.setAdapter(new ArrayAdapter<String>(this,  
  10.           android.R.layout.simple_list_item_1, mStrings));  
  11.       setContentVieww(listView);  
  12.         }  
  13.   
  14.   private String[] mStrings = {  
  15.           "Abbaye de Belloc", "Abbaye du Mont des Cats",      
  16.           "Acorn", "Adelost", "Affidelice au Chablis",  
  17.           "Aisy Cendre", "Allgauer Emmentaler", "Alverca",  
  18.           "Ami du Chambertin", "Anejo Enchilado", "Anneau  
  19.           "Aragon", "Ardi Gasna", "Ardrahan", "Armenian  
  20.           "Asadero", "Asiago", "Aubisque Pyrenees", "Autun",  
  21.             "Babybel", "Baguette Laonnaise", "Bakers", "Bal"};  
  22. }
posted @ 2013-03-28 22:31  JobinWang  阅读(445)  评论(0编辑  收藏  举报