android developer tiny share-20170603

来源:互联网 发布:程序员代码图 编辑:程序博客网 时间:2024/06/08 13:21

今天继续讲android日历事件的ContentProvider,上一节讲添加事件,这一节讲更新和删除事件。

以下是android developer官方讲解:


更新事件


当您的应用想允许用户编辑事件时,我们建议您按照使用 Intent 编辑事件中所述使用 EDIT Intent。不过,您可以在需要时直接编辑事件。 如需执行事件更新,您可以通过 URI 追加 ID (withAppendedId()) 或第一个选定项形式提供事件的 _ID。选定范围应以 "_id=?" 开头,并且第一个 selectionArg 应为事件的 _ID。 您还可以使用不含 ID 的选定范围执行更新。 以下是一个更新事件的示例。 它使用 withAppendedId() 方法更改事件的标题:

private static final String DEBUG_TAG = "MyActivity";...long eventID = 188;...ContentResolver cr = getContentResolver();ContentValues values = new ContentValues();Uri updateUri = null;// The new title for the eventvalues.put(Events.TITLE, "Kickboxing");updateUri = ContentUris.withAppendedId(Events.CONTENT_URI, eventID);int rows = getContentResolver().update(updateUri, values, null, null);Log.i(DEBUG_TAG, "Rows updated: " + rows);  


删除事件


您可以通过将事件 _ID 作为 URI 追加 ID 或通过使用标准选定范围来删除事件。如果您使用追加 ID,则将无法同时使用选定范围。共有两个版本的删除:应用删除和同步适配器删除。应用删除将 deleted 列设置为 1。此标志告知同步适配器该行已删除,并且应将此删除操作传播至服务器。 同步适配器删除会将事件连同其所有关联数据从数据库中移除。 以下是一个应用通过事件 _ID 删除事件的示例:

private static final String DEBUG_TAG = "MyActivity";...long eventID = 201;...ContentResolver cr = getContentResolver();ContentValues values = new ContentValues();Uri deleteUri = null;deleteUri = ContentUris.withAppendedId(Events.CONTENT_URI, eventID);int rows = getContentResolver().delete(deleteUri, null, null);Log.i(DEBUG_TAG, "Rows deleted: " + rows);


原创粉丝点击