Один из способов сделать это - использовать теги для маркеров, чтобы различать маркеры в разделе infoWindowAdapter.Я подумал, что это более простой способ сделать эту работу.
selfMark=mMap.addMarker(new MarkerOptions().position(curLocation).title("Lahore").icon(BitmapDescriptorFactory.fromResource(R.drawable.passengermarker)));
selfMark.setTag("user");
drMark=mMap.addMarker(new MarkerOptions().position(drLoc).title("Lahore").icon(BitmapDescriptorFactory.fromResource(R.drawable.marker)));
drMark.setTag("driver");
этот раздел для InfoWinfoAdapter:
mMap.setInfoWindowAdapter(new GoogleMap.InfoWindowAdapter() {
@Override
public View getInfoWindow(Marker marker) {
return null;
}
@Override
public View getInfoContents(final Marker marker) {
View view = getLayoutInflater().inflate(R.layout.driver_inf, null);
final TextView tvEmail = view.findViewById(R.id.emailDrive);
final TextView tvname = view.findViewById(R.id.nameDrive);
final TextView tvlocality = view.findViewById(R.id.localityDrive);
if(marker.getTag().equals("driver")){
tvEmail.setText("Driver");
}
else if (marker.getTag().equals("user")){
tvEmail.setText("Passenger");
}
tvname.setText(dC.getName());
Geocoder gc = new Geocoder(passengerAct.this, Locale.getDefault());
try {
List<Address> adr = gc.getFromLocation(marker.getPosition().latitude, marker.getPosition().longitude, 1);
Address address = adr.get(0);
tvlocality.setText(address.getLocality() + "," + address.getCountryName());
} catch (IOException e) {
e.printStackTrace();
}
return view;
}
});