为什么包会覆盖自己

Why is bundle overwriting itself

我正在将结果发送到上一个 activity

public void sendResult() {
    Intent intent = new Intent();
    Bundle result = new Bundle();
    switch (who) {
        case TARIF:
            result.putParcelableArrayList(MainActivity.PICK_TARIFF_LOG, tariffList);
            break;
        case CALL_LOG_ALL:
            //  myCallLogList = myCallLog.unsortList(sortedCallList);
            if (usedDataCall) {
                result.putBoolean(IS_PICK_DATE, usedDataCall);
                result.putIntegerArrayList(PICK_DATE, date);
            } else {
                result.putBoolean(IS_PICK_DATE, usedDataCall);
            }
            result.putParcelableArrayList(PICK_CALL_LOG, myCallLogList);
            break;
        case SMS_LOG_ALL:
            if (usedDataSms) {
                result.putBoolean(IS_PICK_DATE, usedDataSms);
                result.putIntegerArrayList(PICK_DATE, date);
            } else {
                result.putBoolean(IS_PICK_DATE, usedDataSms);
            }

            result.putParcelableArrayList(PICK_SMS_LOG, mySmsLogList);
            break;
    }
    if (getParent() == null) {
        setResult(Activity.RESULT_OK, intent);
    } else {
        getParent().setResult(Activity.RESULT_OK, intent);
    }

    intent.putExtras(result);
}

但是我的捆绑结果被覆盖了,我不明白为什么。 例如 case CALL_LOG_ALL:它将添加 usedDataCall 值并在后面将用该 arrayList 覆盖它,最后将添加 parcelableList 以便缺少布尔值,但我需要所有 3 个值都在这个包。有什么想法吗?

实际上问题是两个常量的值相同。懒得再打一遍,复制粘贴后我只改了名字..