什么是uri,contentValues

And*_*Dev 30 android uri android-contentresolver

任何人都能解释一下我在处理日历活动时使用的每个术语吗?

  1. Uri event_uri = Uri.parse("content://com.android.calendar/" + "events");
    什么是uri,实际上是什么内容,因为我们可以将int值初始化为0?是否
    可以使用默认值初始化uri?

  2. Uri reminder_uri = Uri.parse("content://com.android.calendar/" + "reminders");
    什么意味着这些uri?event_uri和之间有什么区别reminder_uri

  3. ContentValues values = new ContentValues();
    values.put("calendar_id", 1);
    values.put("title", str);
    values.put("description", m_strDescription);

    第一个做什么? values.put("calendar_id", 1);

  4. ContentResolver cr = getContentResolver();
    内容解析器有什么用?有时我们会写:

    Uri u = cr.insert(event_uri, values)
    这是什么uri?它与前两个uris有何不同,例如event_urireminder_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.