2012-02-03 92 views
0

我不知道確切的詞語來形容這一點,但我的情況是這樣的: 在我的申請,我給了用戶選擇他們想在谷歌地圖中顯示該城市的選項,說有4個選項,並且用戶點擊其中的兩個。這是我的聽衆方法。清潔活動數據

public void onClick(View v) { 
     CheckBox option; 
     int id = 1; 
     while ((option = (CheckBox) thisActivity.findViewById(id)) != null) { 
      if (option.isChecked()) { 
       selected = selected + option.getText().toString() + ";"; 
      } 
      id++; 
     } 
     Intent newintent = new Intent(thisActivity, ShowInMap.class); 
     newintent.putExtra("SelectedCity", selected); 
     // newintent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY); 
     thisActivity.startActivity(newintent); 
    } 

我可以成功地在地圖上顯示這兩個選擇的城市,但是當我打的返回鍵,選擇一個另一個城市這個時候,都表明,城市仍然在地圖上之前加上無論我選擇了這個時間,而我的日誌說實際上這三個城市被髮送到地圖API。所以我的問題是,有沒有辦法清理這兩個選定的城市,並做一個全新的選擇。即只有我第二次選擇的城市在地圖上。先謝謝你。

回答

0

看起來變量selected是全球性的,因此當您回到第一個選擇城市的活動時,新的選定城市將被追加到舊的selected字符串中。

我建議你先清除selected字符串,每次啓動一個新的選擇之前。

public void onClick(View v) { 
     selected="";//clear it 
     CheckBox option; 
     int id = 1; 
     while ((option = (CheckBox) thisActivity.findViewById(id)) != null) { 
      if (option.isChecked()) { 
       selected = selected + option.getText().toString() + ";"; 
      } 
      id++; 
     } 
     Intent newintent = new Intent(thisActivity, ShowInMap.class); 
     newintent.putExtra("SelectedCity", selected); 
     // newintent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY); 
     thisActivity.startActivity(newintent); 
    } 
+0

這是一個很好的觀點,我會稍後再說。感謝名單 – 2012-02-03 03:19:41

+0

工作就像一個魅力。感謝名單! – 2012-02-03 03:36:48

+0

@ClintHui很高興看到它的作品。不用謝! – Huang 2012-02-03 03:38:15