【发布时间】:2021-08-09 06:09:57
【问题描述】:
正如您在标题中看到的那样,我在片段中的地图中的 setOnMarkerClickListener 方法存在问题。 标记出现了,但是当我单击它们时,它们的标题只会出现,而不是我在下面显示的 Toast。
我尝试了不同的解决方案,但没有一个对我有用。我把我的代码留在这里。任何帮助表示赞赏!
public class DashboardFragment extends Fragment implements OnMapReadyCallback{
private GoogleMap mMap;
public LocationManager locationManager;
public LocationListener locationListener;
public LatLng userLatLong,mLatLong1,mLatLong2;
public boolean isNetworkEnabled = false;
public boolean isGPSEnabled = false;
public MarkerOptions mPosicion,m1,m2;
public Marker marcadorPosicion,marcador1,marcador2;
SupportMapFragment fragment;
public View onCreateView(@NonNull LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
View root = inflater.inflate(R.layout.fragment_dashboard, container, false);
fragment = (SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.map2);
fragment.getMapAsync(this);
}
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
mMap.setMapType(GoogleMap.MAP_TYPE_TERRAIN);
//REAL TIME POSITION NTW
locationManager = (LocationManager) getActivity().getSystemService(Context.LOCATION_SERVICE);
locationListener = new LocationListener() {
@Override
public void onLocationChanged(Location location) {
userLatLong = new LatLng(location.getLatitude(), location.getLongitude());
marcadorPosicion.remove();
mPosicion=new MarkerOptions().position(userLatLong).title("Estas aqui");
marcadorPosicion = mMap.addMarker(mPosicion);
mMap.moveCamera(CameraUpdateFactory.newLatLng(userLatLong));
mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(userLatLong, 15));
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onProviderDisabled(String provider) {
}
};
//Marcadores
cargarMapa();
mMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
@Override
public boolean onMarkerClick(Marker marker) {
Toast.makeText(getActivity(), "Marker Clicked", Toast.LENGTH_SHORT).show();
return false;
}
});
}
public void cargarMapa(){
//Marcadores
//Metemos las coordenadas de los monumentos
mLatLong1= new LatLng(43.3233106, -3.1215395);//Foto_002
mLatLong2= new LatLng(43.3483518, -3.1189326);//Foto_00
m1=new MarkerOptions().position(mLatLong1).title("Foto_002").icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_GREEN));//Foto_002
marcador1 = mMap.addMarker(m1);
m2=new MarkerOptions().position(mLatLong2).title("Foto_005").icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_GREEN));//Foto_005
marcador2 = mMap.addMarker(m2);
}
【问题讨论】:
标签: java android google-maps-markers