ここでは、Time Square ライブラリを使用して選択されている範囲の日付の選択を解除したいと考えています。次の方法で範囲を選択しています:
if (selectionMode == SelectionMode.RANGE && selectedCells.size() > 1) {
// Select all days in between start and end.
Date start = selectedCells.get(0).getDate();
Date end = selectedCells.get(1).getDate();
selectedCells.get(0).setRangeState(MonthCellDescriptor.RangeState.FIRST);
selectedCells.get(1).setRangeState(MonthCellDescriptor.RangeState.LAST);
Log.d("First", MonthCellDescriptor.RangeState.FIRST +"");
Log.d("Last",MonthCellDescriptor.RangeState.LAST+"");
for (List<List<MonthCellDescriptor>> month : cells) {
for (List<MonthCellDescriptor> week : month) {
for (MonthCellDescriptor singleCell : week) {
if (singleCell.getDate().after(start)
&& singleCell.getDate().before(end)
&& singleCell.isSelectable()) {
singleCell.setSelected(true);
singleCell.setRangeState(MonthCellDescriptor.RangeState.MIDDLE);
selectedCells.add(singleCell);
}
}
}
}
}
そして、選択した範囲の日付を削除しようとすると、他の日付も削除されます:
if (selectedCell.getDate().equals(date)) {
// De-select the currently-selected cell.
selectedCell.setSelected(false);
selectedCells.remove(selectedCell);
date = null;
break;
}
例: 選択範囲が 10 ~ 30 の場合、22 をタップすると、その範囲から 22 が選択解除されます。