gpt4 book ai didi

安卓日历 : onActivityResult's resultCode is always 0

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:38:19 24 4
gpt4 key购买 nike

我开发了一个提示日历应用程序编辑事件的 Android 应用程序。

我使用 startActivityForResult() 打开日历。编辑并保存事件后,onActivityResult() 中的 resultCode 始终为 0。

我看到很多与“onActivityResult resultCode 始终返回 0”相关的答案。这是因为在第二个 Activity 中没有使用 setResult()finish()

但就我而言,我调用的是 Android 日历应用程序(不是自定义 Activity )。

提示Android日历的代码:

Intent intent = new Intent(Intent.ACTION_EDIT);
intent.setType("vnd.android.cursor.item/event");
//set the event details
startActivityForResult(intent,1);

保存或取消日历时触发

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
//resultCode always returns 0.
switch(requestCode) {
case 1:
if (resultCode == Activity.RESULT_OK)
{

}
}
}

无论我在日历应用程序中单击“保存”还是“取消”,resultCode 总是给出 0。

此外,我需要从日历 Intent 中获取数据。但是 onActivityResult 中的 Intent “数据”也返回 null。

谁能解释为什么会这样?有什么方法可以知道用户点击的是“保存”还是“取消”?

最佳答案

可以查看新增日历事件的lastId,如果没有变化,则结果实际上是CANCELLED,否则OK

val projection = arrayOf(CalendarContract.Calendars._ID)
cursor = contentResolver.query(CalendarContract.Events.CONTENT_URI, projection, null, null, null)
if (cursor.moveToLast()) {
val lastId = cursor.getLong(0)
// compare lastId with a previous one, if not changed - result is CANCELLED
}

关于安卓日历 : onActivityResult's resultCode is always 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25615301/

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