効率化, リファクタ, 修正

This commit is contained in:
ろむねこ 2024-07-23 12:00:10 +09:00
parent 161d9d7602
commit 4916c05b08
Signed by: Fujimatsu
GPG Key ID: FA1F39A1BA37D168

View File

@ -156,16 +156,20 @@ public class HistoryItemListAdapter extends RecyclerView.Adapter<HistoryItemList
((MonthHeaderViewHolder) holder).monthHeaderTitle.setText(historyData.getRegisteredAt().getDate() + ""); ((MonthHeaderViewHolder) holder).monthHeaderTitle.setText(historyData.getRegisteredAt().getDate() + "");
((MonthHeaderViewHolder) holder).monthTotalTextView.setText(getMonthTotal(historyData) + ""); ((MonthHeaderViewHolder) holder).monthTotalTextView.setText(getMonthTotal(historyData) + "");
((MonthHeaderViewHolder) holder).checkAllButton.setOnClickListener(v -> { ((MonthHeaderViewHolder) holder).checkAllButton.setOnClickListener(v -> {
// TODO: 一括で外すことも出来るように // 次のヘッダーまでの間のアイテムを全てチェックする
// 判定が変わるまで全部チェックする int index = position + 1;
try { try {
int index = historyDataList.getList().indexOf(historyData);
while (!isFirstOfMonth(this.historyDataList.getList().get(index))) { while (!isFirstOfMonth(this.historyDataList.getList().get(index))) {
this.historyDataList.getList().get(index).setChecked(true); this.historyDataList.getList().get(index).setChecked(true);
index++; index++;
} }
// 自身を更新 Workaround: なぜかindexを+1しないとチェックをつけれないので
this.historyDataList.getList().get(position).setChecked(true);
// 表示更新
notifyItemRangeChanged(position, index - position);
// notifyDataSetChanged();
} catch (IndexOutOfBoundsException e) { } catch (IndexOutOfBoundsException e) {
// 1個しかない場合? Workaround // 1個しかない場合 Workaround
} }
}); });
} }