2012-03-18 48 views
0

目前,我的應用有一個mapview,在onCreate函數中創建new MyLocationOverlay通過按下按鈕在MapView上創建位置疊加層

locationOverlay = new MyLocationOverlay(this, map); 
locationOverlay.runOnFirstFix(centerAroundFix); 
map.getOverlays().add(locationOverlay); 

我正在嘗試創建一個按鈕,它可以選擇性地與Google地圖非常類似。這是我迄今爲止所擁有的。

ImageButton locButton = (ImageButton)findViewById(R.id.googlemaps_select_location); 

locButton.setOnClickListener(new OnClickListener() { 
    public void onClick(View v) { 
     locationOverlay = new MyLocationOverlay(ctx, map); 
     locationOverlay.runOnFirstFix(centerAroundFix); 
     map.getOverlays().add(locationOverlay); 
    } 
}); 

我不得不改變的唯一的事情就是「這個」爲「CTX」。我在onCreate()函數中設置了ctx = this。我也嘗試使用getApplicationContext()而不是ctx

使用調試器,我打破onClick()函數,並可以通過它。點擊運行後,我telnet到模擬器並使用geo fix命令來修復模擬器。不幸的是,centerAroundFix()永遠不會被調用。不知道我做錯了什麼,在這裏...

回答

0

我通過移動 locationOverlay = new MyLocationOverlay(ctx, map)onCreate()功能解決了這個。

也許locationOverlay如果它在onClick()函數中,就會收集垃圾回收?