Android setOnMarkerClickListener establecer título para cada marcador

He implementado un clustermarker en mi aplicación, tengo una lista de LatLng que viene de mi base de datos, ahora quiero mostrar el nombre de los clientes como título cuando el usuario hace clic en el marcador, pero cuando hago clic en el marcador que No me muestra nada, ¿cómo puedo lograrlo, este es mi código hasta ahora:

public class MapaViagem extends FragmentActivity { private GoogleMap googleMap; private String rm_IdViagem; private List<ClienteModel> mClienteModel = new ArrayList<ClienteModel>(); private List<EnderecoModel> mEnderecoModel = new ArrayList<EnderecoModel>(); private ViagemModel mViagemModel = new ViagemModel(); private ClusterManager<MyItem> mClusterManager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.maps); ArrayList<LatLng> coordList = new ArrayList<LatLng>(); try { Bundle parametros = getIntent().getExtras(); rm_IdViagem = parametros.getString("id_viagem"); Repositorio ca = new Repositorio(this); mViagemModel = ca.getViagemPorId(Integer.valueOf(rm_IdViagem)); Repositorio cl = new Repositorio(this); mClienteModel = cl.getClientesViagem(Integer.valueOf(rm_IdViagem)); int i; for ( i = 0; i < mClienteModel.size(); i++) { Repositorio mRepositorio = new Repositorio(this); mEnderecoModel = mRepositorio.getListaEnderecosDoCliente(Integer.valueOf(mClienteModel.get(i).getClientes_id())); System.out.println("NOMES " + mClienteModel.get(i).getNome()); for (int j = 0; j < mEnderecoModel.size(); j++) { // Loading map initilizeMap(); // Changing map type googleMap.setMapType(GoogleMap.MAP_TYPE_NORMAL); // googleMap.setMapType(GoogleMap.MAP_TYPE_HYBRID); // googleMap.setMapType(GoogleMap.MAP_TYPE_SATELLITE); // googleMap.setMapType(GoogleMap.MAP_TYPE_TERRAIN); // googleMap.setMapType(GoogleMap.MAP_TYPE_NONE); // Showing / hiding your current location googleMap.setMyLocationEnabled(true); // Enable / Disable zooming controls googleMap.getUiSettings().setZoomControlsEnabled(true); // Enable / Disable my location button googleMap.getUiSettings().setMyLocationButtonEnabled(true); // Enable / Disable Compass icon googleMap.getUiSettings().setCompassEnabled(true); // Enable / Disable Rotate gesture googleMap.getUiSettings().setRotateGesturesEnabled(true); // Enable / Disable zooming functionality googleMap.getUiSettings().setZoomGesturesEnabled(true); final float latitude = Float.parseFloat(mEnderecoModel.get(j).getLatitude()); final float longitude = Float.parseFloat(mEnderecoModel.get(j).getLongitude()); coordList.add(new LatLng(latitude, longitude)); googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(latitude, longitude), 10)); // Initialize the manager with the context and the map. // (Activity extends context, so we can pass 'this' in the constructor.) mClusterManager = new ClusterManager<MyItem>(this, googleMap); // Point the map's listeners at the listeners implemented by the cluster // manager. googleMap.setOnCameraChangeListener(mClusterManager); googleMap.setOnMarkerClickListener(mClusterManager); addItems(coordList); googleMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() { @Override public boolean onMarkerClick(final Marker marker) { LatLng pos = marker.getPosition(); int arryListPosition = getArrayListPosition(pos); return true; } }); } } } catch (Exception e) { e.printStackTrace(); } } private int getArrayListPosition(LatLng pos) { for (int i = 0; i < mEnderecoModel.size(); i++) { if (pos.latitude == Double.parseDouble(mEnderecoModel.get(i).getLatitude().split(",")[0])) { if (pos.longitude == Double.parseDouble(mEnderecoModel.get(i).getLongitude().split(",")[1])) return i; } } return 0; } private void addItems(List<LatLng> markers) { for (int i = 0; i < markers.size(); i++) { MyItem offsetItem = new MyItem(markers.get(i)); mClusterManager.addItem(offsetItem); } } private void initilizeMap() { if (googleMap == null) { googleMap = ((MapFragment) getFragmentManager().findFragmentById( R.id.map)).getMap(); // check if map is created successfully or not if (googleMap == null) { Toast.makeText(getApplicationContext(), "Não foi possível carregar o mapa", Toast.LENGTH_SHORT) .show(); } } } @Override protected void onResume() { super.onResume(); initilizeMap(); } } 

No está seguro de cómo está inicializando sus Markers porque no muestra esa parte del código pero poner un título en él se hace de esta manera:

 //You need a reference to a GoogleMap object GoogleMap map = ... // get a map. Marker marker = map.addMarker(new MarkerOptions() .position(new LatLng(37.7750, 122.4183)) //Or whatever coordinate .title("Your title") .snippet("Extra info")); 

Y eso es todo, al hacer clic en él verá la información de ese marcador.

Puede encontrar más información aquí

EDITAR

Para el ClusterManager creo que puede encontrar esta respuesta útil

  • Android maps utils cluster icon color
  • Google maps api v2 fuera de error de memoria
  • Agrupamiento de mapas: los marcadores de zoom máximo siguen agrupados
  • Cómo centrar el texto en android IconGenerator
  • Mejores prácticas al agrupar gran cantidad de marcadores en Google Maps Android V2
  • Google Map vs. Administrador de clústeres: onCameraChangeListener obsoleto
  • Andorid Google mapa muestra marcador personalizado y problema de agrupación
  • Marcadores de clúster en Google Maps Android v2
  • Android, devolución de llamada cuando se completa el agrupamiento de mapas
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.