我无法理解以下代码中的某些概念:
1)我们为什么要使用.arg0.getPathSegments()。get(1)?
2)get(1)的值是什么?
3)什么是功能 (!TextUtils.isEmpty(arg1)?“AND(”+ arg1 +')':“”),arg2);
public int delete(Uri arg0, String arg1, String[] arg2) {
int count=0;
switch (uriMatcher.match(arg0)){
case BOOKS:
count = booksDB.delete(
DATABASE_TABLE,
arg1,
arg2);
break;
case BOOK_ID:
String id = arg0.getPathSegments().get(1);
count = booksDB.delete(
DATABASE_TABLE,
_ID + " = " + id +
(!TextUtils.isEmpty(arg1) ? " AND (" +
arg1 + ')' : ""),
arg2);
break;
default: throw new IllegalArgumentException(
"Unknown URI " + arg0);
}
getContext().getContentResolver().notifyChange(arg0, null);
return count;
答案 0 :(得分:0)
1)我们为什么要使用.arg0.getPathSegments()。get(1)?
假设您查询了uri内容:// [Authority] / foo / bar getPathsegments将返回一个包含foo和bar的列表(不是 授权)
2)get(1)的值是什么?
因此,对于上述情况,get(1)将在列表中给出第二项,即 杆
3)(!TextUtils.isEmpty(arg1)?AND(“+ arg1 +')':”“)的功能是什么,arg2);
删除功能签名是
public int delete(Uri url, String where, String[] whereArgs)
因此,如果
where
字符串不为null,则附加条件 db delete操作。