Sam*_*m35 6 android android-intent android-calendar android-activity
我开发了一个Android应用程序,它提示日历应用程序编辑事件.
我startActivityForResult()用来打开日历.编辑并保存事件后, resultCode内部始终为0 onActivityResult().
我看到许多与"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);
Run Code Online (Sandbox Code Playgroud)
在保存或取消日历时触发
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
//resultCode always returns 0.
switch(requestCode) {
case 1:
if (resultCode == Activity.RESULT_OK)
{
}
}
}
Run Code Online (Sandbox Code Playgroud)
无论我在日历应用程序中单击"保存"还是"取消",resultCode总是给出0.
另外我需要从日历intent中获取数据.但是onActivityResult中的intent"data"也返回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
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1203 次 |
| 最近记录: |