目录

  • 1 Android说课
    • 1.1 课程简介
    • 1.2 课程的定位与目标
    • 1.3 课程的设计理念与思路
    • 1.4 课程内容的选取与教学组织的安排
    • 1.5 课程的教学模式与教学方法
    • 1.6 课程教学资料
    • 1.7 课程特色
  • 2 Android项目结构
    • 2.1 项目开发
  • 3 Button的用法
    • 3.1 Button的用法
    • 3.2 内部类方法处理按钮单击事件
  • 4 Android入门
    • 4.1 Android的发展史
    • 4.2 Android的系统构架
    • 4.3 搭建Android开发环境
    • 4.4 创建Android应用程序
  • 5 Activity初步
    • 5.1 Activity启动流程
    • 5.2 Activity与布局文件间的关系
    • 5.3 Activity当中获取代表控件对象
  • 6 AcitonBar与菜单
    • 6.1 ActionBar的作用
    • 6.2 各版本的菜单对比
  • 7 控件布局
    • 7.1 控制布局的概念
    • 7.2 相对布局管理器
  • 8 Activity详解
    • 8.1 Actibity初步
    • 8.2 认识Intent
  • 9 列表控件
    • 9.1 Android列表用途
    • 9.2 用ArrayAdapter显示数据
    • 9.3 列表项布局设计
    • 9.4 下拉视图Spinner
  • 10 对话框
    • 10.1 Toast提示框
    • 10.2 Dialog对话框
    • 10.3 特色对话框
    • 10.4 自定义对话框
    • 10.5 构建Notification
  • 11 Service
    • 11.1 关于service
    • 11.2 范例:定义后台服务
    • 11.3 剪贴板服务
  • 12 Android线程
    • 12.1 message,looper, handler类的关系
    • 12.2 范例:消息传递 —— 自动更新文本
  • 13 Pending Intent
    • 13.1 认识PendingIntent
    • 13.2 范例:发送通知 —— Notification
  • 14 广播机制:Broadcast
    • 14.1 范例:广播组件的定义结构
  • 15 存储数据
    • 15.1 SharedPreferences存储
    • 15.2 文件存储
    • 15.3 SQLite数据库存储
    • 15.4 ContentProvider存储
    • 15.5 网络存储
ContentProvider存储




Android当中,每一个应用程序的数据都是采用私有的形式进行操作的,不管这些数据是文件保存还是数据库保存,都不能被外部应用程序所访问。但是在很多情况下用户是需要可以在不同的应用程序之间进行数据的交换,所以为了解决这样的问题,在Android中专门提供了一个ContentProvider类,此类的主要功能是将不同的应用程序的数据操作标准统一起来,并且将各个应用程序的数据操作标准暴露给其他应用程序,这样,一个应用程序的数据就可以按照ContentProvider所制定的标准被外部所操作。






ContentProvider类常用的操作方法










Uri

在使用ContentProvider类进行数据操作的时候(insert()、update()等)都是采用了Uri的形式进行数据的交换,例如:有如下一个Uri




此Uri组成部分如下:

A部分(协议):ContentProvider(内容提供者)访问协议,已经由Android所规定为:content://; 

B部分(主机名或Authority):用于唯一标识这个ContentProvider,外部调用者可以根据这个标识来找到它,一般都为程序的“包.类”名称,但是要采用小写字母的形式表示; 

C部分(Path):访问的路径,一般都为要操作的数据表的名称,根据操作的不同可以如以下几种情况: 访问全部数据:content://Authority/Path member表的全部数据:content://org.lxh.demo.membercontentprovider/member/ 根据id访问数据:content://Authority/Path/ID member表中id为3的数据:content://org.lxh.demo.membercontentprovider/member/3 访问某一条记录的某个字段:content://访问标识/表名称/ID/列名称 member表第3条记录name数据:content://org.lxh.demo.membercontentprovider/member/10/name 

ContentResolver

ContentProvider在程序的操作中所提供的是一个操作的标准,所以用户如果要想依靠此标准进行数据操作的时候,必须使用到android.content.ContentResolver类完成,而这个类中所给出的操作方法与ContentProvider是一一对应的, 当用户调用了ContentResolver类的方法时实际上就相当于调用了ContentProvider类中的对应方法 

Activity类对ContentResolver类的操作方法

由于ContentResolver是一个抽象类,所以要想取得ContentResolver类的实例化对象进行操作,则需要依靠android.app.Activity类中的方法 public ContentResolver getContentResolver。

Uri的辅助操作类:ContentUris 

由于所有的数据都要通过Uri进行传递,以增加操作为例,当用户执行完增加数据操作后往往需要将增加后的数据ID通过Uri进行返回,当接收到这个Uri的时候就需要从里面取出增加的ID,为了方便用户这种取出数据的操作,在Android中又提供了一个android.content.ContentUris的辅助工具类,帮助用户完成Uri的若干操作;ContentUris类常用的操作方法 从指定Uri之中取出ID:public static long parseId(Uri contentUri) 在指定的Uri之后增加ID参数:public static Uri withAppendedId(Uri contentUri, long id)