ArrayAdapter_SimpleAdapter_CursorAdapter的区别

数据源不同而已
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"};  
}

android各种适配器的用法(转)的更多相关文章

  1. 【转】Android各种Adapter的用法

    转自:http://my.oschina.net/u/658933/blog/372151 Android各种Adapter的用法 发表于5个月前(2015-01-27 10:56)   阅读(143 ...

  2. ArrayAdapter适配器的用法,模拟QQ发消息界面。

    import java.util.ArrayList; import android.app.Activity; import android.content.Context; import andr ...

  3. android的logcat详细用法

    Android日志系统提供了记录和查看系统调试信息的功能.日志都是从各种软件和一些系统的缓冲区中记录下来的,缓冲区可以通过 logcat 命 令来查看和使用. 使用logcat命令 你可以用 logc ...

  4. 怎么通过activity里面的一个按钮跳转到另一个fragment(android FragmentTransaction.replace的用法介绍)

    即:android FragmentTransaction.replace的用法介绍 Fragment的生命周期和它的宿主Activity密切相关,几乎和宿主Activity的生命周期一致,他们之间最 ...

  5. Android开发中Bundle用法包裹数据(转)

    Android开发中Bundle用法包裹数据 Bundle的经典用法,包裹数据放入Intent中,目的在于传输数据. SDK 里是这样描述: A mapping from String values ...

  6. Android进阶笔记10:Android 万能适配器

    1. Android 万能适配器      项目中Listview GridView几乎是必用的组件,Android也提供一套机制,为这些控件绑定数据,那就是Adapter.用起来虽然还不错,但每次都 ...

  7. android application类的用法

    android application类的用法 Application是android系统Framework提供的一个组件,它是单例模式(singleton),即每个应用只有一个实例,用来存储系统的一 ...

  8. android 中uri.parse()用法

    android 中uri.parse()用法 1,调web浏览器 Uri myBlogUri = Uri.parse("http://xxxxx.com"); returnIt = ...

  9. Android webView 正确的用法

    Android webView 正确的用法 引言: 我在网络找了几个例子,基本上都有问题,<Android疯狂讲义>13.4中的源代码也有问题.终于在官网找到正确的用法.点我. 基本用法: ...

随机推荐

  1. 涨姿势:创业做一个App需要花多少钱(8个人,6个月,就要100万,附笔记心得)

    (原标题:涨姿势:创业做一个App要花多少钱?) 作为互联网从业者,被外行的朋友们问及最多的问题是,“做一个网站需要多少钱?”或者“做一个APP需要多少钱?”. 作为做过完整网站项目和APP的人,今天 ...

  2. WCF入门(十)---WCF事务

    事务处理在WCF(Windows Communication Foundation)是一套遵循一些性质,统称为ACID的操作.这里,如果一个操作出现故障,整个系统就会自动失败.如网上订单生成,就可能使 ...

  3. 对于oracle监听器的配置

    oracle 的 net configuration  assist中配置完第一项的监听程序配置(对应文件listener.ora)之后,还要重新配置下第三项本地网络服务名配置(对应文件tnsname ...

  4. dom4j修改,获取,增加xml中某个元素的属性值

    XML文件: <?xml version="1.0" encoding="UTF-8"?> <vrvscript> <item I ...

  5. ASP.NET线程相关配置

    1.(maxWorkerThreads * CPU逻辑数量)-minFreeThreads 比如2个CPU默认配置maxWorkerThreads=100,minFreeThreads=176,则同时 ...

  6. UVa 11181 (条件概率) Probability|Given

    题意: 有n个人买东西,第i个人买东西的概率为Pi.已知最终有r个人买了东西,求每个人买东西的概率. 分析: 设事件E为r个人买了东西,事件Ei为第i个人买了东西.所求为P(Ei|E) = P(EiE ...

  7. UVa 1252 (状压DP + 记忆化搜索) Twenty Questions

    题意: 有n个长为m的各不相同的二进制数(允许存在前导0),别人已经事先想好n个数中的一个数W,你要猜出这个数. 每次只可以询问该数的第K为是否为1. 问采用最优询问策略,则最少需要询问多少次能保证猜 ...

  8. Android基础_3 Activity相对布局

    相对布局要比前面讲的线性布局和表格布局要灵活一些,所以平常用得也是比较多的.相对布局控件的位置是与其周围控件的位置相关的,从名字可以看出来,这些位置都是相对的,确定出了其中一个控件的位置就可以确定另一 ...

  9. [源代码] - C#代码搜索器 - 续

    在前文 [源代码] - C#代码搜索器 中我开发了一个代码搜索器. 我对其做的最后改动是将索引保存到磁盘中, 以备今后使用. 如今, 我在工作中又接到一项新任务: 有一个大项目, 其中10个负责数据访 ...

  10. 物联网操作系统HelloX V1.78测试版正式发布

    经过HelloX开发团队近四个月的努力,在HelloX V1.77版本基础上,增加许多功能特性,并对V1.77版本的一些特性进行了进一步优化之后,正式形成HelloX V1.78测试版本,经相对充分的 ...