【发布时间】:2014-09-02 03:12:56
【问题描述】:
我开发了一个 Android 应用程序,它会提示日历应用程序编辑事件。
我使用startActivityForResult() 打开日历。编辑并保存事件后,resultCode 在onActivityResult() 中始终为 0。
我看到很多与“onActivityResult resultCode 总是返回 0”相关的答案。
这是因为在第二个活动中没有使用setResult() 和finish()。
但就我而言,我调用的是 Android 日历应用程序(不是自定义活动)。
提示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。
另外,我需要从日历意图中取回数据。但是 onActivityResult 中的意图“数据”也返回 null。
谁能解释为什么会这样?有什么方法可以知道用户是点击“保存”还是“取消”?
【问题讨论】:
-
日历是否设计为返回值?如果不是,它将始终返回 0。
-
我认为 Android (Google) 日历不会返回任何结果,至少在 Calendar Provider 中没有指定。
-
如果是,Android日历提供者是否提供任何方法来知道用户点击保存日历还是取消?
-
暂时忽略
resultCode。你有任何Intent data回复吗?if(data != null)是否返回true?你能从中得到data.getExtras()?bundle吗?打印到logcat,里面有什么? -
"data" 总是返回 null。在 logcat 中显示以下 Log。 " 在看到事件光标之前,无法使用日历光标更新模型。"
标签: android android-intent android-activity android-calendar