gpt4 book ai didi

java - 如何使用ContentResolver Android更新与会者信息?

转载 作者:行者123 更新时间:2023-12-01 13:03:24 24 4
gpt4 key购买 nike

我尝试更改特定 Activity 的一位与会者的状态。

以下示例演示如何更新事件标题:

ContentResolver cr = context.getContentResolver();

ContentValues values = new ContentValues();
values.put(Events.TITLE, "Some new title");
String selectedEventId = "123";

String[] selArgs = new String[]{selectedEventId};
int updated = cr.update(
Events.CONTENT_URI,
values,
Events._ID + " =? ",
selArgs);

但我需要特定与会者的更新信息。所以我需要以某种方式更改查询的 Where 部分。

现在我有 Events._ID + "=? 这意味着 其中 eventID=123

这一行将设置新类型:

values.put(Attendees.ATTENDEE_STATUS, "1"); // 1 - ACCEPTED

如何编写 where 语句以通过电子邮件更新特定与会者(比如说)aaa.bbb@gmail.com

[编辑]

我尝试过:

String selectedEventId = eventStructure.getString("mEventId");
String selectedEmail = "aaa.bbb@gmail.com";

String[] selArgs = new String[]{selectedEventId, selectedEmail};
int updated =
cr.
update(
Events.CONTENT_URI,
values,
Events._ID + " =? AND " + Attendees.ATTENDEE_EMAIL + " =?",
selArgs);

但出现异常:

 android.database.sqlite.SQLiteException: no such column: attendeeEmail (code 1): ,
while compiling: SELECT * FROM Events WHERE _id =? AND attendeeEmail =?

感谢您的帮助,

最佳答案

由于您想要更新与会者信息,因此需要将 UriEvents.CONTENT_URI 更改为 Attendees.CONTENT_URI

另外,Events._ID 改为 Attendees.CONTENT_URI

所以代码 fragment 应该是这样的:

    values.put(Attendees.ATTENDEE_STATUS, "1"); 

String selectedEventId = eventStructure.getString("mEventId");
String selectedEmail = "aaa.bbb@gmail.com";

String[] selArgs = new String[]{selectedEventId, selectedEmail};
int updated = cr.update(
Attendees.CONTENT_URI,
values,
Attendees.EVENT_ID + " =? AND " + Attendees.ATTENDEE_EMAIL + " =?",
selArgs);

Log.d(TAG, "sendAcceptEvent :: updated row count: "+ updated);
<小时/>

没有测试,但应该可以工作

关于java - 如何使用ContentResolver Android更新与会者信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23383045/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com