我正在使用的代码列出了日历中的事件,我需要限制日期范围,在示例中,我看到以下代码:

// Construct the query with the desired date range.
Uri.Builder builder = Instances.CONTENT_URI.buildUpon();
ContentUris.appendId(builder, startMillis);
ContentUris.appendId(builder, endMillis);


我不明白为什么以这种方式使用appendId。 startMillis和endMillis不是id,我希望必须提供参数名称,例如“ startdate”,但我不清楚为什么这样做,以及可以用这种方式指定其他参数。 appenedId是否支持更多参数?我怎么知道?

最佳答案

appendId的实际作用是在您的uri中添加一个/#,其中#是数字。在您的示例(假设startMillis = 1000endMillis = 3000以及uri content://com.google.calendar/)中,这意味着您的uri可能会像这样结束:

content://com.google.calendar/1000/3000


uri解析器可以进行以下操作:

URIMatcher.addURI(AUTHORITY, calendar + "/#/#", DATE_RANGE);


长话短说:appendId只是一种将整数添加到uri路径的便捷且类型安全的方法。

关于android - 了解使用ContentUris.appendId来查询日历提供程序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12830027/

10-11 15:27