2012-09-11 21 views
-6

我有下面的代碼:從列表基於添加或刪除一個字符串的if語句

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設置爲空,如果選擇了三個或更多,它將起作用。但是,如果選擇了兩個,則檢查的行星也會從列表中移除。

編輯:對誰運行到這個問題的人,我解決它通過使用其他(程序員的攔網讓我失去了意義!),然後執行,我需要使它工作的一些其他方法。

+8

爲什麼你應該檢查一樣,當它的確切oposite添加其他替代 –

+0

@droidhot請看到我的編輯 – fasheikh

+0

我不不明白爲什麼所有的降價...什麼可能看起來簡單的一個人是不是我 – fasheikh

回答

1

爲什麼不能做到這一點:

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

請參閱我的編輯 – fasheikh

+0

你想遍歷集合,看看每個項目是否被檢查? – iTurki

+0

是的請,那是我需要做的 – fasheikh

2

爲什麼你不這樣做呢?

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

好吧,你是對的,他應該這樣寫,但你不覺得,這將是一個問題的解決方案,它只是一種方法來最小化/優化代碼,所以它不應該只是一個評論。 – jeet

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