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