• 与数据库打交道的Adapter----SimpleCursorAdapter


          程序员是这个世界上最神奇的职业,因为几乎所有其他职业的人都能转到该行来,只要他智力正常,有接受过正规的编程训练,尤其是现在培训班实在是太多了,加上他肯去学,三个月后他就能说自己是C或者java程序员了,但一个事实是摆明的:世界上几乎80%的优秀软件是由程序员中10%的精英编写或者基于他们的成果上编写的,这是不争的事实:程序员这个门槛实在是太低了,但是发展瓶颈却很高。

          我们都不是那10%的精英程序员,甚至连他们的1%的才能都比不上,相信大家都一定看过不少这些精英们的著作,我们会发现,他们要么是数学家,要么坚称自己是个艺术家。那么像我们这样资质平凡的人该怎么办呢?努力是必须的,但编程真的不是我们编得越多就越厉害,可怕的是,精英程序员的编程次数可能还比不上我们!除了所谓的天赋之外(天赋真的很重要,甚至能够决定我们是否能够成为大师的关键因素之一),我们需要的就是有效经验的累积,而不是一直都在做重复的工作而自己不知。

          这句话对于每个程序员来说都非常重要:每个程序员都应该为自己挖一口井。

          好了,今天讲的是SimpleCursorAdapter,用于将Cursor中的columns与XML文件中定义的TextView或者ImageView进行匹配的Adapter。

          典型的例子就是获取获取通讯录联系人信息的例子,因为这些数据就存放在系统数据库中。

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            Map<String, String> map = new HashMap<String, String>();
    
            ListView listView = (ListView) this.findViewById(R.id.list);
            Cursor cursor = getContentResolver().query(
                    ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
            if(cursor != null){

    startManagingCursor(cursor);
    }
    ListAdapter adapter
    = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_1, cursor, new String[] { PhoneLookup.DISPLAY_NAME }, new int[] { android.R.id.text1 }); listView.setAdapter(adapter); stopManagingCursor();
    }

           这只是简单的获取联系人姓名的例子而已,当然,为了能够运行该例子,我们需要添加下面的权限: 

           <uses-permission android:name="android.permission.READ_CONTACTS" />
           这里有一个方法很值得我们注意:startManagingCursor()。它的使用是基于这样的前提:游标结果集里有很多的数据记录,像是通讯录这样的结果集,肯定符合要求。使用该方法的目标主要是把获取的Cursor对象交给Activity管理,这样Cursor的生命周期就和Activity自动同步了,这样在Activity结束的时候就能自动结束Cursor的使用。使用前最好是先判断Cursor是否为空,以免发生错误,而且使用后也要用stopManagingCursor()方法来停掉它。

           SimpleCursorAdapter除了数据来源指定是数据库之外,就和SimpleAdapter的用法几乎一样了。

           有关于SimpleAdapter的使用,可以参考我的这篇博客:http://www.cnblogs.com/wenjiang/p/3189082.html

           已经讲完所有的Adapter,接下来将会集中讲解ListView的工作原理和BaseAdapter的使用。如果想要了解其他Adapter的使用,可以参考我的另一篇博客:http://www.cnblogs.com/wenjiang/p/3196205.html这是讲解ArrayAdapter的使用。

  • 相关阅读:
    Java9模块化(Jigsaw)初识
    Java9 modules (Jigsaw)模块化迁移
    Java数据库连接——JDBC调用存储过程,事务管理和高级应用
    面向对象编程(三)——程序执行过程中内存分析
    面向对象编程(十)——继承之Super关键字及内存分析
    面向对象编程(十二)——final关键字
    项目管理利器——Maven阅读目录
    深入分析Java的序列化与反序列化
    Java提高篇——Java 异常处理
    怎么运行Typescript
  • 原文地址:https://www.cnblogs.com/wenjiang/p/3196486.html
Copyright © 2020-2023  润新知