1

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 .

0 Answers0