I am trying to create a customised view of my Info Window for which I have made a layout file. But my data(Lattitude and Longitude ) are in the form a ArrayList.
for (int i = 0; i < list.size(); i++) {
Log.e(getClass().getName(), list.get(i).getFirstName());
double x = list.get(i).getLocationLatLon().getLat();
double y = list.get(i).getLocationLatLon().getLon();
if (x > 90 || x < -90 || y < -180 || y > 180) {
Log.e(getClass().getName(),
"out of range " + Double.toString(x) + " "
+ Double.toString(y));
lng2 = new LatLng(lat, lng);
} else {
Log.e(getClass().getName(),
"In range " + Double.toString(x) + " "
+ Double.toString(y));
lng2 = new LatLng(x, y);
}
InfoClass infoClass= new InfoClass();
infoClass.setName(list.get(i).getFirstName()+" "+list.get(i).getLastName());
infoClass.setCharge(list.get(i).getCharge());
infoClass.setAvailableTime(list.get(i).getTimeAvailable());
infoClass.setServiceCategory(list.get(i).getCategoryName());
infoClass.setServiceName(list.get(i).getServiceName());
finalist.add(infoClass);
theMap.addMarker(new MarkerOptions()
.title(list.get(i).getServiceName())
.position(lng2)
.icon(BitmapDescriptorFactory
.fromResource(entertainment))
.snippet(list.get(i).getFirstName() + " "+ list.get(i).getLastName()) );
theMap.setOnInfoWindowClickListener(this);
}
I am setting my markers according the Latitudes and Longitude in my list and adding the required information to an ArrayList of class InfoClass. Now when I set setInfoWindowAdapter and pass finalist to my implementation of InfoWindowAdapter.
theMap.setInfoWindowAdapter(new InfoWindow(this, finalist));
my InfoWindow class
public class InfoWindow implements InfoWindowAdapter {
private final View myContentsView;
private LayoutInflater mInflator;
ArrayList<InfoClass> list;
public InfoWindow(Context context, ArrayList<InfoClass> list) {
//Context context = new MainActivity().getApplicationContext();
Context context2= context;
mInflator = LayoutInflater.from(context2);
this.list= list;
myContentsView = mInflator.inflate(R.layout.info_view, null);
}
@Override
public View getInfoWindow(Marker marker) {
return myContentsView;
}
@Override
public View getInfoContents(Marker arg0) {
return null;
}
}
Now here in getInfoWindow method how do I get the get the information for a particular marker as each marker needs to display separate information based on its Location .