Skip to content

Instantly share code, notes, and snippets.

@galex
Created December 29, 2012 11:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save galex/4406283 to your computer and use it in GitHub Desktop.
Save galex/4406283 to your computer and use it in GitHub Desktop.
Complete MapFragment loading and showing markers, plus refresh action item
package com.example.fragment;
public class PlaceMapFragment extends RefreshMapFragment implements LoaderCallbacks<List<Category>> {
private static final int LOADER_ID = 613;
private HashMap<Marker, Place> markerPlaces;
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
getSherlockActivity().getSupportLoaderManager().initLoader(LOADER_ID, null, this);
}
@Override
public Loader<List<Category>> onCreateLoader(int id, Bundle bundle) {
setRefreshing(true);
return new CategoryLoader(getSherlockActivity());
}
@Override
public void onLoadFinished(Loader<List<Category>> loader, List<Category> data) {
if (getMap() != null) {
getMap().clear();
markerPlaces = new HashMap<Marker, Place>();
for (Category category : data) {
BitmapDescriptor icon = BitmapDescriptorFactory.fromResource(category.getType().getIconResId());
for (Place place : category.getPlaces()) {
Marker marker = getMap().addMarker(new MarkerOptions().position(new LatLng(place.getLat(), place.getLng())).title(place.getTitle()).snippet(place.getDescription()).icon(icon));
markerPlaces.put(marker, place);
getMap().setOnInfoWindowClickListener(new OnInfoWindowClickListener() {
@Override
public void onInfoWindowClick(Marker marker) {
Place place = markerPlaces.get(marker);
PlaceDetailActivity.startActivity(getSherlockActivity(), place);
}
});
}
}
getMap().setInfoWindowAdapter(new PlaceInfoWindowAdapter(getSherlockActivity(), markerPlaces));
}
setRefreshing(false);
}
@Override
public void onLoaderReset(Loader<List<Category>> loader) {
}
@Override
public void onRefresh() {
getSherlockActivity().getSupportLoaderManager().restartLoader(LOADER_ID, null, this);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment