2016-11-21 40 views
0

我有一個主要活動,並且我有一些標記(太多以逐個初始化它們) 當我點擊infowidow時,我想打開一個帶有特定標記的片段。 目前,我有這樣的事情我可以在Google地圖上啓動來自不同標記的其他活動嗎?

for(i = 0; i<j; i++) 
      { 
       hely = helyek.get(i); 
       if(hely.getStars()>=2){ 
        hely.getHelyId(); 
        Marker marker = mMap.addMarker(new MarkerOptions().position(new LatLng(hely.getLat(),hely.getLng())) 
          .title(hely.getHelynev()) 
          .snippet(hely.getHelycim()) 
          .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_GREEN))); 
        markers.add(marker); 

這增加了標記到地圖上。

public void onMapReady(GoogleMap googleMap) { 
    int j; 
    int i=0; 
    List<Marker> markers = new ArrayList<Marker>(); 
    mMap = googleMap;   
    mMap.getUiSettings().setMyLocationButtonEnabled(true); 
    mMap.setOnInfoWindowClickListener(new GoogleMap.OnInfoWindowClickListener() { 
     @Override 
     public void onInfoWindowClick(Marker marker) { 
      Intent intent = new Intent(getApplicationContext(), HelyDetailActivity.class); 
      intent.putExtra(ListActivity.HELY_NEV_EXTRA, hely.getHelynev()); 
      intent.putExtra(ListActivity.HELY_CIM_EXTRA, hely.getHelycim()); 
      intent.putExtra(ListActivity.HELY_JOVALASZOK, hely.getJovalaszok()); 
      intent.putExtra(ListActivity.HELY_OSSZKERDES, hely.getOsszkerdes()); 
      intent.putExtra(ListActivity.HELY_ID_EXTRA, hely.getHelyId()); 
      intent.putExtra(ListActivity.HELY_LAT,hely.getLat()); 
      intent.putExtra(ListActivity.HELY_LONG, hely.getLng()); 
      startActivity(intent); 
     } 
    }); 
    mMap.setMyLocationEnabled(true); 
} 

這會打開一個coures活動,但每次都是同一個活動。我怎樣才能定義我點擊了哪個標記?

回答

0

你可以嘗試使用聲明一個新的HashMap數據結構。當你添加標記到地圖上,你可以把對象了Hely到地圖像這樣:

HashMap<String, Hely> helyMap = new HashMap<>(); //... code to create the marker ...// markers.add(marker); helyMap.put(marker.getId(), hely);

然後,在onInfoWindowClick(Marker marker)方法來檢索基礎上被點擊了這樣的標誌物了Hely對象所以:

Hely hely = helyMap.get(marker.getId()); Intent intent = new Intent(getApplicationContext(), HelyDetailActivity.class); intent.putExtra(ListActivity.HELY_NEV_EXTRA, hely.getHelynev()); // ... other intent code ... // startActivity(intent);

+0

謝謝,只是想將它張貼,我找到了解決辦法:)這是同樣的,但我還是謝謝你,現在你讓我確信我在正確的軌道上:) – kocsisur

相關問題