Java 谷歌地图API v2:如何添加OnMarkerClickListener或OnInfoWindowClickListener来启动新活动?

Java 谷歌地图API v2:如何添加OnMarkerClickListener或OnInfoWindowClickListener来启动新活动?,java,android,google-maps,Java,Android,Google Maps,我当前的代码 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.B

我当前的代码

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布局。可以使用
onmarker单击
oninfo窗口
单击来完成。我将第一个标记设置为打开或设置contentview。 对我来说很有用,但我可能写错了


否则,如果语句是测试,但它不起作用,则会导致第二个标记无法启动。如果您可以帮助回答此问题,请提供示例代码和方法,以便在我按下“后退”按钮时使其返回地图。

如果(marker.equals(“myMarkerOne”)、是否要打开xml布局?是xml,则应这样编写。我的问题是else if语句使用不当。您需要另一个活动文件来显示您的xml,否则它将替换您当前的布局。请参阅if else语句。因此,我将使用intent和所有有趣的内容来启动新活动?点击后退按钮,它会返回到一个活动吗?