根据if语句在列表中添加或删除字符串

时间:2012-09-11 11:01:04

标签: android list checkbox

我有以下代码:

  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解决了它(程序员的阻止让我感觉不舒服!)然后实现了我需要使其工作的其他一些方法。

3 个答案:

答案 0 :(得分:2)

你为什么不这样做?

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

答案 1 :(得分:1)

为什么不这样做:

for(int i=0; i<selectedPlanet.size(); i++) {
    if(planet.isChecked()) {
        selectedPlanets.add(planet.getDisplayName()); 
    } else {
       selectedPlanets.remove(planet.getDisplayName()); 
    }
}

答案 2 :(得分:1)

你要做的是 如果isChecked 为true,则添加

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()); 
}