0

我正在使用 alamkanak/Android-Week-View 库并且工作正常,但我想防止这种情况发生:

事件碰撞

我试试这个:

        Calendar oldEndTime = null;

        Calendar oldStartTime = null;

        for (int i = 0; i < mNewEvents.size(); i++) {

            oldEndTime = mNewEvents.get(i).getEndTime();

            oldStartTime = mNewEvents.get(i).getStartTime();

        }
        if ( mNewEvents.size() == 0
            || event.getEndTime().before(oldStartTime)
            || event.getStartTime().after(oldEndTime)  ){

                mNewEvents.add(event);
        } else {
            Toast.makeText(this, "Noop", Toast.LENGTH_SHORT).show();
        }
4

1 回答 1

0

请检查for循环的右括号是否设置正确。您正在设置oldStartTime并且oldEndTime在循环中,但您的测试只完成一次 - 在循环之后。也许是这样的?

Calendar oldEndTime = null;
Calendar oldStartTime = null;
boolean collision = false;
for (int i = 0; i < mNewEvents.size(); i++) {
    oldEndTime = mNewEvents.get(i).getEndTime();
    oldStartTime = mNewEvents.get(i).getStartTime();
    if (event.getEndTime().after(oldStartTime) 
        && event.getStartTime().before(oldEndTime)) {
        collision = true;
        break;
    }
}
if (!collision) {
    mNewEvents.add(event);
} else {
    Toast.makeText(this, "Noop", Toast.LENGTH_SHORT).show();
}
于 2018-02-01T14:12:00.610 回答