我的线路 m_schedules.get(0).getWeeklyScheduleSet().remove(day);
有问题
我无法删除 Integer
索姆 Set<>
删除函数返回 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;
}
}
最佳答案
day
是一个局部变量,您正在从特定事件的 Set 中删除值,因此 day
值将不是您在方法中设置的值。所以尝试将日子作为字段
关于java - 无法从集合中删除整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35943370/