我正在使用的代码列出了日历中的事件,我需要限制日期范围,在示例中,我看到以下代码:
// 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 = 1000
和endMillis = 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/