ArrayAdapter ,SimpleAdapter与SimpleCursorAdapter 区别

很多初学者肯定会对适配器感到困惑,其实他们就是数据源不同而已 。

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

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

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

SimpleAdapter


public class List3 extends ListActivity {   
       
    List<Map<String, Object>> list;   
    
    @Override  
    public void onCreate(Bundle savedInstanceState) {   
       super.onCreate(savedInstanceState);   
          
       list = getListForSimpleAdapter(); //list为数据集合 
    
       SimpleAdapter     adapter = new SimpleAdapter(this, list,   
R.layout.item,   
       new String[] { "BigText", "LittleText", "img" },    
new int[] { R.id.BigText,R.id.LittleText, R.id.img });  

        //可以想成把一个 放好数据的布局文件 放入本界面中   
       setListAdapter(adapter);       
    }   
    
    private List<Map<String, Object>> getListForSimpleAdapter() {   
    List<Map<String,Object>> list=newArrayList<Map<String,        Object>>(3);   
           Map<String, Object> map = new HashMap<String, Object>();   
           map.put("BigText", "Android");   
           map.put("LittleText", "Google phone.");   
           map.put("img", R.drawable.n);   
           list.add(map);   
    
           map = new HashMap<String, Object>();   
           map.put("BigText", "Lenovo");   
           map.put("LittleText", "Ophone");   
           map.put("img", R.drawable.o);   
           list.add(map);   
    
           map = new HashMap<String, Object>();   
           map.put("BigText", "Droid");   
           map.put("LittleText", "Motorola");   
           map.put("img", R.drawable.droid);   
           list.add(map);   
    
          
       return list;   
    }   
}   

SimpleCursorAdapter


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

public class List2 extends Activity {   
       
    private ListView listView;   
    @Override  
    protected void onCreate(Bundle savedInstanceState) {   
        super.onCreate(savedInstanceState);   
    
        listView=new ListView(this);   
       Cursorc=getContentResolver().query(People.CONTENT_URI,   
       null, null, null, null);         
        startManagingCursor(c);   
    
        ListAdapter adapter = new SimpleCursorAdapter(this,    
                 android.R.layout.simple_list_item_1,   
                 c,    
                 new String[] {People.NAME} ,   
                 new int[] {android.R.id.text1});    
        listView.setAdapter(adapter);   
setContentView(listView);   
}   
}  

ArrayAdapter


public class List1 extends  Activity {   
    
    private ListVeiw listView;   
    @Override  
    public void onCreate(Bundle savedInstanceState) {   
   super.onCreate(savedInstanceState);   
    
       listView=new ListVeiw(this);   
       listView.setAdapter(new ArrayAdapter<String>(this,   
           android.R.layout.simple_list_item_1, mStrings));   
      setContentVieww(listView);   
        }   
    
   private String[] mStrings = {   
           "Abbaye de Belloc", "Abbaye du Mont des Cats",       
           "Acorn", "Adelost", "Affidelice au Chablis",    
           "Aisy Cendre", "Allgauer Emmentaler", "Alverca",    
           "Ami du Chambertin", "Anejo Enchilado", "Anneau    
           "Aragon", "Ardi Gasna", "Ardrahan", "Armenian    
           "Asadero", "Asiago", "Aubisque Pyrenees", "Autun",    
            "Babybel", "Baguette Laonnaise", "Bakers", "Bal"};   
}  
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值