android(4)事务处理,ContentProvider,ListView

假装没事ソ 提交于 2020-04-12 17:44:30

一.SQLite数据库
  * 1.事务
        beginTransaction();            // 开始事务
        setTransactionSuccessful();    // 设置成功点, 在事务结束时, 成功点之前的操作会被提交
        endTransaction();            // 结束事务, 通常放在finally中, 如果不显示关闭事务, 超市也会关闭, 但效率较低
  * 2.另一种增删改查
        SQLiteDatabase类中有insert(), delete(), update(), query()四个方法, 不用写SQL语句, 通过参数拼装得到SQL
        通常使用在ContentProvider

二.ListView
    1.三种Adapter构建ListView
        ListView添加条目的时候, 可以使用setAdapter(ListAdapter)方法, 常用的ListAdapter有三种
            BaseAdapter: 定义一个类继承BaseAdapter, 重写4个抽象方法, ListView的条目是由getView()方法构建出来的
            SimpleAdapter: 创建SimpleAdapter对象时, 传入数据(List<Map<String, ?>>), 并指定数据的绑定关系
            SimpleCursorAdapter: 创建SimpleCursorAdapter对象时, 传入一个Cursor, 指定数据的绑定关系
    2.监听ListView的点击
        调用ListView.setOnItemClickListener(OnItemClickListener)方法注册一个监听器
        在监听器的onItemClick()方法中使用 parent.getItemAtPosition(position) 方法可以获取指定条目上的数据
            BaseAdapter: 返回的就是自定义的getItem()方法中返回的数据
            SimpleAdapter: 返回的是一个Map, 就是创建SimpleAdapter时List中的一个Map
            SimpleCursorAdapter: 返回的是一个Cursor, 这个Cursor就是创建时传入的Cursor, 但是已经通过moveToPosition()方法指定到点击的索引了
            
三.内容提供者(ContentProvider)
    1.什么是ContentProvider
        ContentProvider可以用来把程序中的数据对外进行共享, 提供增删改查的方法
        ContentProvider中可以注册观察者, 监听数据的变化
  * 2.怎么创建
        定义类继承ContentProvider, 实现抽象方法
        在清单文件中注册
    3.在手机上注册
        将应用安装到手机上即可, 不用运行程序
  * 4.怎么访问
        获取解析器ContentResolver, 指定Uri
        通过ContentResolver.insert(), delete(), update(), query()方法访问Uri关联的ContentProvider
    5.Uri的处理
        使用UriMatcher可以检查传入的Uri是否和指定的匹配
        如果Uri带了id, 可以使用ContentUris获取id, 插入方法可以使用ContentUris给Uri加上id

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!