【问题标题】:Cant remove Integer from Set [closed]无法从集合中删除整数 [关闭]
【发布时间】: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?
  • 您正在检查哪个集合是否元素已被删除?

标签: java android set


【解决方案1】:

day 是一个局部变量,您要在特定事件上从 Set 中删除值,因此 day 值将不是您在方法中设置的值。所以试着把一天当成田野

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-19
    • 1970-01-01
    • 2019-04-10
    • 2017-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多