簡體   English   中英

Android日歷:onActivityResult的resultCode始終為0

[英]Android Calendar: onActivityResult's resultCode is always 0

我開發了一個Android應用程序,它提示日歷應用程序編輯事件。

我使用startActivityForResult()打開日歷。 編輯並保存事件后, resultCode onActivityResult() resultCode始終為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。

另外我需要從日歷intent中獲取數據。但是onActivityResult中的intent“data”也返回null。

有誰可以解釋為什么會發生? 有沒有辦法知道用戶是否點擊“保存”或“取消”?

您可以檢查新添加的日歷事件的lastId,如果沒有更改,則結果實際上是CANCELED,否則就可以了

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
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM