我在上次覆盖中收到该错误。
我真的不知道需要退货什么,所以请帮助我。
public class MapsActivity extends FragmentActivity implements OnMapReadyCallback,GoogleMap.OnMarkerClickListener {
private GoogleMap mMap;
private Marker myMarker;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_maps);
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
}
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
LatLng MORNAR = new LatLng(43.5201139, 16.4282208);
googleMap.setOnMarkerClickListener(this);
mMap.addMarker(new MarkerOptions().position(MORNAR).title("Stari mornar"));
mMap.moveCamera(CameraUpdateFactory.newLatLng(MORNAR));
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(MORNAR, 13));
}
@Override
public boolean onMarkerClick(final Marker marker) {
String name= marker.getTitle();
if (name.equalsIgnoreCase("Stari mornar"))
{
openActivity3();
}
}
public void openActivity3(){
Intent intent = new Intent(this, Main2Activity.class);
startActivity(intent);
}
}
答案 0 :(得分:1)
将制造商的点击侦听器更改为此
@Override
public boolean onMarkerClick(final Marker marker) {
String name= marker.getTitle();
if (name.equalsIgnoreCase("Stari mornar"))
{
openActivity3();
return true;
}
return false;
}
这里的方法表明它返回布尔值。
因此,如果您单击标记,并且函数返回true,则表示click事件成功,如果返回false,则信息窗口将照常显示。
答案 1 :(得分:-1)
在最后一个覆盖方法(onMapReady(Marker))中,您需要返回一个布尔值,因为它是强制性的。
@Override
public boolean onMarkerClick(final Marker marker) {
String name= marker.getTitle();
if (name.equalsIgnoreCase("Stari mornar"))
{
openActivity3();
}
// return true or false
}
如果返回true,则表示您已单击标记。
在函数的隐私访问器(“公共”)之后,您将拥有返回类型,在这种情况下,该类型为布尔值。
让我知道这是否有帮助! ;)