2016-03-11 239 views
0

取出整数我有一个问题与线m_schedules.get(0).getWeeklyScheduleSet().remove(day);
我无法删除Integer SOM一个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; 
     } 
     } 
+0

什么样的集合getWeeklyScheduleSet()返回? – Roel

+0

哪个集合正在检查元素是否已被删除? –

回答

2

day是一个局部变量,您是从设置在特定事件中除去值,所以day值不会是你已经在方法中设置它的价值。因此,尽量让领域的一天