And*_*Dev 30 android uri android-contentresolver
任何人都能解释一下我在处理日历活动时使用的每个术语吗?
Uri event_uri = Uri.parse("content://com.android.calendar/" + "events");
什么是uri,实际上是什么内容,因为我们可以将int值初始化为0?是否
可以使用默认值初始化uri?
Uri reminder_uri = Uri.parse("content://com.android.calendar/" + "reminders");
什么意味着这些uri?event_uri和之间有什么区别reminder_uri?
ContentValues values = new ContentValues();
values.put("calendar_id", 1);
values.put("title", str);
values.put("description", m_strDescription);
第一个做什么? values.put("calendar_id", 1);
ContentResolver cr = getContentResolver();
内容解析器有什么用?有时我们会写:
Uri u = cr.insert(event_uri, values)
这是什么uri?它与前两个uris有何不同,例如event_uri和reminder_uri
再次 values.put("event_id", Long.parseLong(event.getLastPathSegment()));
cr.insert(remindar_uri, values);
它有什么作用?
Noe*_*oel 54
关于问题1和问题2,A Uri是指向具有重要意义的地址.在ContentProviders 的情况下,Uri通常用于确定使用哪个表.因此,event_uri指向事件表和reminder_uri提醒表的点.uris确实没有"默认值".
关于问题3,ContentValues它本质上是一组键值对,其中键表示表的列,值是要插入该列的值.因此,在该情况下values.put("calendar_id", 1);,列为"calendar_id",并且为该列插入的值为1.
关于问题4,ContentResolver是android用来解析Uris ContentProvider的问题.任何人都可以创建ContentProvider和Android具有ContentProviderS为日历,联系人等.而insert()上的方法ContentResolver返回Uri插入行.所以在问题1和问题2中,那些Uris指向了表,但Uris是分层的,因此它们可以解析为特定的行.例如:
content://com.android.calendar/events 指向事件表,但是
content://com.android.calendar/events/1 指向事件表中id为1的行.
请记住,这是通常的行为,但提供ContentProvider可以自定义uris以不同方式解决.
我强烈建议您阅读ContentProvider文档,尤其是有关内容URI的部分.
从以前推荐的文档:
在前面的代码行中,"words"表的完整URI是:
content://user_dictionary/words其中
user_dictionarystring是提供者的权限,wordsstring是表的路径.字符串content://(方案)始终存在,并将其标识为内容URI.
| 归档时间: |
|
| 查看次数: |
38612 次 |
| 最近记录: |