Uri介绍

本文介绍了Android中Uri的基本组成及用途,包括如何通过Uri指定要操作的数据和ContentProvider。同时详细讲解了UriMatcher和ContentUris两个工具类的具体用法,帮助开发者更好地管理和匹配数据。
摘要由CSDN通过智能技术生成
 Uri主要包含了两部分信息:

    (1)需要操作的ContentProvider;

    (2)对ContentProvider中的什么数据进行操作。

Uri做成部分:

 

ContentProviderscheme由Android规定为:content://;主机名(authority)用来唯一标识找到它;路径由要操作的业务而定。

把字符串转换为Uri方法:

    Uri  uri = Uri.parse("content://com.qgmobile.providers.personprovider/person")    

Uri代表要操作数据,Android提供了操作Uri的工具类:

    (1)UriMatcher类

    (2)ContentUris类

 

UriMatcher类:(用于匹配Uri)

    (1)注册需要匹配Uri路径:
        //常量UriMatcher.NO_MATCH表示不匹配任何路径的返回码
        UriMatcher  sMatcher = new UriMatcher(UriMatcher.NO_MATCH);
        //如果match()方法匹配content://cn.itcast.provider.personprovider/person路径,返回匹配码为1
        sMatcher.addURI(“cn.itcast.provider.personprovider”, “person”, 1);

        //如果match()方法匹配content://cn.itcast.provider.personprovider/person/230路径,返回匹配码为2
        sMatcher.addURI(“cn.itcast.provider.personprovider”, “person/#”, 2);//#号为通配符

    (2)注册完需要匹配的Uri后,就可以使用sMatcher.match(uri)方法对输入的Uri进行匹配,如果匹配就返回匹配码
        switch (sMatcher.match(Uri.parse("content://cn.itcast.provider.personprovider/person/10"))) { 
           case 1
                break;
           case 2
                break;
           default://不匹配
                break;
        }

 

ContentUris类:

    ContentUris类用于获取Uri路径后面的ID部分,它有两个比较实用的方法:
        (1)withAppendedId(uri, id)用于为路径加上ID部分:
                Uri uri = Uri.parse("content://cn.itcast.provider.personprovider/person")
                Uri resultUri = ContentUris.withAppendedId(uri, 10);
                //生成后的Uri为:content://cn.itcast.provider.personprovider/person/10

        (2)parseId(uri)方法用于从路径中获取ID部分:
                Uri uri = Uri.parse("content://cn.itcast.provider.personprovider/person/10")
                long personid = ContentUris.parseId(uri);//获取的结果为:10

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值