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

标签 java android

我尝试更改特定 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/

相关文章:

java - 我可以将一个 Runnable 用于两个线程,以便一个生成,一个消耗吗?

android - 无法在 Linux 中启动模拟器

android - Nexus 5 和 navigator.device.capture.captureAudio

android - 为 android 无边框按钮添加样式 (android 4.0+)

java - 此 C OpenSSL 加密函数的 Java JCE 等价物是什么?

java - static 和 IOException 是什么意思?

java - Java 中的事件监听器没有应用程序的焦点? (全局按键检测)

javax.mail.MessagingException 无法连接到 SMTP 主机端口 :25 response -1

android - 如何使用Gradle使HoloEverywhere与新的Android项目一起使用?

android - 添加项目时如何让 GridView 适应其高度