1
我已經寫了一個應用程序,顯示在都柏林市的一組交通攝像頭的位置。我在地圖上將這些標記顯示爲標記。當用戶點擊標記時,他們會被帶到一個新的活動,顯示相關攝像機的最新圖片。它似乎適用於第一次點擊。圖像顯示並按下後會再次返回到相機位置的地圖。不過,再次點擊(相同標記或不同)會將圖像顯示出來,但點擊後會再次顯示圖像。隨着每次連續拍打,ImageView的實例似乎都在積累。在地圖上的水龍頭似乎在積累
相關的代碼(我認爲)是:
@Override
public boolean onTap(int index) {
Log.d(TAG, "Tap done on" + index);
Intent i = new Intent(TrafficViewActivity.this, CameraViewer.class);
i.putExtra("imageSrc", getItem(index).getImageSrc());
startActivity(i);
return super.onTap(index);
}
,這(不執行任何自定義):
@Override
public boolean onTap(GeoPoint p, MapView mapView) {
// mController.animateTo(p);
Log.d(TAG, "onTap geopoint:");
return super.onTap(p, mapView);
}
上述2種方法都在一個班,我發現創建此簽名:
class HelloItemizedOverlay extends ItemizedOverlay<MyOverlayItem>
目標活動只是有一個onResume,它看起來像這樣:
@Override
protected void onResume() {
super.onResume();
Intent i = getIntent();
Bundle ex = i.getExtras();
if (ex != null) {
String imageSrc = (String) ex.get("imageSrc");
Log.d(TAG, "imageSrc: " + imageSrc);
Util u = new Util();
u.downloadFile(mImage, imageSrc);
}
}
當我看着我的日誌文件它確實看起來好像水龍頭被稱爲多次,但我不明白這是爲什麼。任何幫助都會很棒。
感謝@NickT現在完美的工作。看起來我不需要將返回值更改爲true(我已經在我的疑難解答中嘗試過)。超類中的onTap不做任何事情並返回false,所以這不影響我的代碼。雖然重新排列活動堆棧的標誌是現貨。我感覺一些意圖標誌學習即將到來:) –