2

我当前的代码

package com.crusaders.epeats;

import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.GoogleMap.OnMarkerClickListener;
import com.google.android.gms.maps.model.BitmapDescriptorFactory;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.Marker;
import com.google.android.gms.maps.model.MarkerOptions;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import com.google.android.gms.maps.SupportMapFragment;

public class Map extends FragmentActivity implements OnMarkerClickListener{

private Marker myMarkerOne;
private Marker myMarkerTwo;
private Marker myMarkerThree;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.map_display);
    GoogleMap googleMap;
    googleMap = ((SupportMapFragment)(getSupportFragmentManager().findFragmentById(R.id.map))).getMap();
    LatLng latLng = new LatLng(-33.796923, 150.922433);
    LatLng latLngTwo = new LatLng(-33.101010, 150.101012);
    LatLng latLngThree = new LatLng(26.123456, 178.123456);
    googleMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
    googleMap.setOnMarkerClickListener(this);
        myMarkerOne = googleMap.addMarker(new MarkerOptions()
            .position(latLng)
            .title("myMarkerOne")
            .snippet("myMarkerOne InfoWindow")
            .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_AZURE)))
        myMarkerTwo = googleMap.addMarker(new MarkerOptions()
            .position(latLngTwo)
            .title("myMarkerTwo") 
            .snippet("myMarkerTwo InfoWindow")
            .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_RED)));
        myMarkerThree = googleMap.addMarker(new MarkerOptions()
            .position(latLngThree)
            .title("myMarkerThree")
            .snippet("myMarkerThree InfoWindow")
            .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_CYAN)));
    googleMap.getUiSettings().setCompassEnabled(true);
    googleMap.getUiSettings().setZoomControlsEnabled(true);
    googleMap.animateCamera(CameraUpdateFactory.newLatLngZoom(latLng, 10));   
}
@Override
public boolean onMarkerClick(final Marker marker) {
    // TODO Auto-generated method stub
    if (marker.equals(myMarkerOne))
    {
    setContentView(R.layout.viewone);
    }
    else if (marker.equals(myMarkerTwo))
    {
    setContentView(R.layout.viewtwo);
    }
    return true;
}
}

我不知道我做错了什么。我需要设置多个标记以在单击时打开不同的 XML 布局。可以使用OnMarkerClickOnInfoWindow单击来完成。我将第一个标记设置为打开或设置 contentview。 对我很有用,但我可能写错了。

else if 语句是一个测试但它不起作用导致第二个标记不会启动。如果您可以帮助回答这个问题,请提供示例代码和一个方法,如果我点击后退按钮,它会返回到地图。

4

0 回答 0