【发布时间】:2016-03-11 14:58:34
【问题描述】:
m_schedules.get(0).getWeeklyScheduleSet().remove(day);这行有问题
我无法删除 Integersom 和 Set<>
remove 函数返回 true。如果我询问它是否包含该对象,则该集合返回 true。但它根本不会删除它。所以我不知道如何解决这个问题。
private void setupToggleDays() {
ViewGroup daysToggleHolder = (ViewGroup) findViewById(R.id.activity_geofence_schedule_days_holder);
m_daysToggleButtons = new ToggleButton[7];
Calendar cal = Calendar.getInstance();
int currWeekDayIndex = cal.getFirstDayOfWeek();
for (int i = 0; i < 7; i++) {
final int day = currWeekDayIndex;
ToggleButton dayToggleButton = (ToggleButton) daysToggleHolder.getChildAt(i);
m_daysToggleButtons[i] = dayToggleButton;
dayToggleButton.setChecked(m_schedules.get(0).getWeeklyScheduleSet().contains(day));
dayToggleButton.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(isChecked){
m_schedules.get(0).getWeeklyScheduleSet().add(day);
}
else {
m_schedules.get(0).getWeeklyScheduleSet().remove(day);
}
}
});
currWeekDayIndex = (currWeekDayIndex % 7) + 1;
}
}
【问题讨论】:
-
getWeeklyScheduleSet() 返回什么样的 Collection?
-
您正在检查哪个集合是否元素已被删除?