一.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数据库