[英]Google maps Android attaching bundle to marker
我有一個Google地圖,其中的標記是從數據庫中的位置設置的,對於每個標記,我都附加了一個單擊偵聽器以轉到另一個活動,我需要的是每個標記都具有來自數據庫的一堆變量,然后用作數據在下一個屏幕中,例如ID,姓名,傳記等,我該怎么做?
map.setOnInfoWindowClickListener(new GoogleMap.OnInfoWindowClickListener() {
@Override
public void onInfoWindowClick(Marker marker) {
Intent intent = new Intent(MapActivity.this,OtherActivity.class);
Bundle b = new Bundle();
// Storing data into bundle
b.putString("name", name);
b.putLong("phoneNumber", phone);
intent.putExtras(b);
startActivity(intent);
}
});
您的問題對我來說不是很清楚,因為在您的問題中,您說將數據從偵聽器傳遞到活動時遇到了問題,但是在發布的代碼中,問題恰恰相反...
如果要將某些數據從偵聽器傳遞到另一個活動,則可以正確地進行處理並發送意圖。
否則,如果您的問題是連接從偵聽器方法接收到的標記以及與之關聯的數據,則事情將變得更加復雜,因為您無法擴展Marker
類。 在這種情況下,您有兩種可能性(afaik):
每次向地圖添加標記時,都會將該標記保存在Map這樣的Map<Marker, YourDataAsObject>
或Map<Marker, TheIdOfTheRecordContainingYourData>
您可以使用markerOptions.snippet("Your info")
或marker.setSnippet("Your info")
方法將與標記關聯的記錄的ID或數據保存在標記內部。
這兩種方式都將在標記與其數據之間建立牢固的聯系。
對於我的英語不好,我深表歉意,希望我的回答對您有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.