我当前的代码
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 布局。可以使用OnMarkerClick
或OnInfoWindow
单击来完成。我将第一个标记设置为打开或设置 contentview。
这对我很有用,但我可能写错了。
else if 语句是一个测试但它不起作用导致第二个标记不会启动。如果您可以帮助回答这个问题,请提供示例代码和一个方法,如果我点击后退按钮,它会返回到地图。