zoukankan      html  css  js  c++  java
  • android Databases android Databases

    Java代码  收藏代码
    1. public static final UriMatcher uriMatcher;  
    2.     static {  
    3.         uriMatcher = new UriMatcher(UriMatcher.NO_MATCH);  
    4.         uriMatcher.addURI(Book.AUTHORITY, "item", Book.ITEM);  
    5.         uriMatcher.addURI(Book.AUTHORITY, "item/#", Book.ITEM_ID);  
    6.     }  


    这里UriMatcher类型的静态字段是用来匹配传入到ContentProvider中的Uri的类。其构造方法传入的匹配码是使用match()方法匹配根路径时返回的值,这个匹配码可以为一个大于零的数表示匹配根路径或传入-1,即常量UriMatcher.NO_MATCH表示不匹配根路径。addURI()方法是用来增加其他URI匹配路径的,第一个参数传入标识ContentProvider的AUTHORITY字符串。第二个参数传入需要匹配的路径,这里的#代表匹配任意数字,另外还可以用*来匹配任意文本。第三个参数必须传入一个大于零的匹配码,用于match()方法对相匹配的URI返回相对应的匹配码。 

    例子: 
    Java代码  收藏代码
    1. @Override  
    2.     public String getType(Uri uri) {  
    3.         // TODO Auto-generated method stub  
    4.         System.out.println(" BookProvider getType...");  
    5.         int code = uriMatcher.match(uri);  
    6.         switch (code) {  
    7.         case Book.ITEM:  
    8.             System.out.println(" BookProvider getType..." +Book.CONTENT_TYPE);  
    9.             return Book.CONTENT_TYPE;  
    10.         case Book.ITEM_ID:  
    11.             System.out.println(" BookProvider getType..." +Book.CONTENT_ITEM_TYPE);  
    12.             return Book.CONTENT_ITEM_TYPE;  
    13.         default:  
    14.             throw new IllegalArgumentException("Unknown URI " + uri);  
    15.         }  
    16.     }  

    分享到:  
    评论
    4 楼 TsuiRay 2011-08-05  
    tiantianhappy 写道
    能问你一个问题吗?为什么 uriMatcher.addURI(Book.AUTHORITY, "item", Book.ITEM);  
    而不是 uriMatcher.addURI(Book.AUTHORITY, "/item", Book.ITEM); 
    api上是有/的,能解释一下吗?

    最新的API是不能写"/"的,应该是版本升级后,API没有及时更新.
    3 楼 steveking1987 2011-04-03  
    貌似不能加,加了/反而找不到相对应的表了
    2 楼 追求幸福 2011-02-14  
    tiantianhappy 写道
    能问你一个问题吗?为什么 uriMatcher.addURI(Book.AUTHORITY, "item", Book.ITEM);  
    而不是 uriMatcher.addURI(Book.AUTHORITY, "/item", Book.ITEM); 
    api上是有/的,能解释一下吗?

    我的理解是:addURL的第二个参数是path,就是比对uri中path的部分,不管你加不加都会自动从根目录/开始匹配,所以加不加都不影响。若是你的数据不是存在于/下,那你就要加*/(
    */item).若我有什么地方说得不对,请指正。谢谢!
    1 楼 tiantianhappy 2011-02-13  
    能问你一个问题吗?为什么 uriMatcher.addURI(Book.AUTHORITY, "item", Book.ITEM);  
    而不是 uriMatcher.addURI(Book.AUTHORITY, "/item", Book.ITEM); 
    api上是有/的,能解释一下吗?
  • 相关阅读:
    关于 haproxy keepalived的测试
    关于 tornado.simple_httpclient SimpleAsyncHTTPClient fetch下载大文件,默认60s的问题
    Linux系统性能监控工具介绍之-tsar
    linux 系统监控好文
    python中字符串使用需要注意的地方
    如何搭建一个GitHub在自己的服务器上?
    linux使用FIO测试磁盘的iops
    适合编程学习的网站
    linux swap的添加等等
    redis主从复制原理与优化
  • 原文地址:https://www.cnblogs.com/tfy1332/p/3658123.html
Copyright © 2011-2022 走看看