android之uriMathcer详解及使用
UriMatcher是一个工具类,主要是用于contentProvider中用于匹配URIS。
UriMatcher实际上相当于一棵树,实例化的UriMatcher对象,相当于树的根节点。
UriMatcher的实例化,
UriMatcher matcher=newUriMatcher(UriMatcher.NO_MACTHER);
UriMatcher.NO_MACTHER是一个常量,如果不匹配就返回-1.
void | addURI( Stringauthority, Stringpath, int code) |
int | match( Uriuri) |
下面通过代码去创建一棵树(只有两个节点,文档上的比较多)
public static final int PERSON = 1;//状态码
public static final int NUMBER = 2;
matcher = new UriMatcher(UriMatcher.NO_MATCH);
matcher.addURI("com.example.sqlite", "person", PERSON);
matcher.addURI("com.example.sqlite", "person/#", NUMBER);//#代表任意数字
匹配uri
int code = matcher.match(uri);
SQLiteDatabase data=db.getWritableDatabase();
switch (code) {
case PERSON:
data.delete("person",selection,selectionArgs);
getContext().getContentResolver().notifyChange(uri, null);
break;
case NUMBER:
int id=(int) ContentUris.parseId(uri);
selection=(selection==null)?"id="+id:selection+"and id="+id;
data.delete("person", selection, selectionArgs);
getContext().getContentResolver().notifyChange(uri, null);
break;
default:
break;
}
更多相关文章
- Android开发中一种两次点击返回键退出应用的方法
- Android任务和返回栈完全解析
- android 是怎样画视图的
- android之自定义渐变颜色(一)
- Android(安卓)辅助功能服务AccessibilityService
- 自己实现的android树控件,android TreeView
- Android(安卓)Layout标签之 - viewStub,requestFocus,merge,include
- Android—启动内置APK和动态发送接收自定义广播
- Android混合开发(一)——移动端与前端交互之JSBridge引入