android 数据库 SQLiteOpenHelper和ContentProvider学习笔记---添加修改删除数据之联系人(二)

1.结构化分

      1)主界面:用来显示数据库列表,并响应menu菜单

               本程序为GContact.java,其主布局文件为contact_list.xml,其ListView的id必须声明为android:id="@+id/android:list",这样系统才可  

               以在ListActivity里引用的到

      2 ) SQLiteOpenHelper类,该类里定义数据库名字:DATABASE_NAME = "bbbcontact.db"   并创建数据库表  表名:contactstable

            每个数据库表至少有一个字段_id。

      3)ContentProvider,其提供了数据库的增删该查方法,在此声明uri

      4)添加数据到数据库,AddContact.java,此界面完成添加数据和修改数据功能。

 

2.结构关系

     1)ContentProvider中用到SQLiteOpenHelper,在ContentProvider中的onCreate里创建DBHelper:

                        dbHelper = new DBHelper(getContext());

            通过 SQLiteDatabase db = dbHelper.getReadableDatabase();

                     SQLiteDatabase db = dbHelper.getWritableDatabase();    对数据库进行操作

     2)当程序界面需要对数据库进行更改时,不需要操作ContentProvider,而是操作getContentResolver,通过该接口即可访问    

             ContentProvider提供的数据

     3)在ContentProvider中定义URI:  public static final Uri CONTENT_URI = Uri.parse("content://"+AUTHORITY+"/contacts");

            其中“content://"为固定部分,AUTHORITY为权限声明,在manifext.xml文件中进行权限声明:

            <provider android:name="ContactProvider" android:authorities="com.bbb.contact"/>

            public static final String AUTHORITY = "com.bbb.contact";

           两字符串保持一致即可。

           当检索到数据库中的一组数据时,其uri后增加字段ID,无ID返回全部数据。

     4)由于添加和修改数据都要进入到AddContact.java中,故在跳转之前GContact.java中增加字段

            intent.setAction(AddContact.EDIT_TABLE_ACTION)表示为修改

            并在AddContact.java中进行判断,action = getIntent().getAction()           EDIT_TABLE_ACTION.equals(action)

            即可分辨是跳转到修改还是增加功能。

3.程序截图

    

 

TabContact.java

 

GContact.java

 

AddContact.java

 

DBHelper.java

 

ContactProvider.java

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值