-6

我有以下代码:

  if(cb.isChecked())
  {
 selectedPlanets.add(planet.getDisplayName()); 
  }

if (!cb.isChecked())
  {
 selectedPlanets.remove(planet.getDisplayName()); 
  }
testing();
}

private void testing() {
            serverString.setText(null);
               Iterator<String>i = selectedPlanets.iterator();
                while(i.hasNext()){
                String aNum1 = i.next();
                serverString.append(aNum1+",");
                }

然后我需要遍历 selectedPlanets 但删除的行星也会出现。通过再次将 TextView 设置为 null,如果选择了三个或更多,它就可以工作。但是,如果选择了两个,则选中的行星也会从列表中删除。

编辑:对于遇到此问题的任何人,我通过使用 else 解决了它(程序员的块让我失去了意义!),然后实现了一些我需要使它工作的其他方法。

4

3 回答 3

2

你为什么不这样做呢?

if (cb.isChecked()) {
   selectedPlanets.add(planet.getDisplayName());
} else {
   selectedPlanets.remove(planet.getDisplayName());
}
于 2012-09-11T11:03:02.093 回答
1

为什么不这样做:

for(int i=0; i<selectedPlanet.size(); i++) {
    if(planet.isChecked()) {
        selectedPlanets.add(planet.getDisplayName()); 
    } else {
       selectedPlanets.remove(planet.getDisplayName()); 
    }
}
于 2012-09-11T11:04:12.653 回答
1

你想要做的是如果为isChecked 真,那么添加一些东西

if(cb.isChecked())
  {
 selectedPlanets.add(planet.getDisplayName()); 
  }

如果isChecked 不是真的,那么删除一些东西

if (!cb.isChecked())
  {
 selectedPlanets.remove(planet.getDisplayName()); 
  }

而不是使用不真实的条件,你必须使用其他情况,如

if(cb.isChecked()) {
    selectedPlanets.add(planet.getDisplayName()); 
} else {
   selectedPlanets.remove(planet.getDisplayName()); 
}
于 2012-09-11T11:11:35.363 回答