@Override public void onItemClick( final AdapterView<?> parent, final View view, final int position, final long id) { final SectionListAdapter sectionListAdapter = (SectionListAdapter) parent.getAdapter(); final MapListSectionAdapter mapListSectionAdapter = (MapListSectionAdapter) sectionListAdapter.getAdapter(position); // / final Object item = sectionListAdapter.getItem(position); if (item instanceof MapListEntry) { final MapListEntry clickedEntry = (MapListEntry) item; final List<MapListEntry> mapListEntryList = mapListSectionAdapter.mapListSection.getMapListEntryList(); // uncheck all entries in section: for (final MapListEntry mapListEntry : mapListEntryList) mapListEntry.setChecked(false); // recheck checked entry: clickedEntry.setChecked(true); // handle sat differently final String value = clickedEntry.getValue(); final RMBTMainActivity activity = getRMBTMainActivity(); if (MapProperties.MAP_SAT_KEY.equals(clickedEntry.getKey())) activity.setMapTypeSatellite(MapProperties.MAP_SAT_VALUE.equals(value)); else if (MapProperties.MAP_OVERLAY_KEY.equals(clickedEntry.getKey())) { if (MapProperties.MAP_AUTO_VALUE.equals(value)) activity.setMapOverlayType(MapProperties.MAP_OVERLAY_TYPE_AUTO); else if (MapProperties.MAP_HEATMAP_VALUE.equals(value)) activity.setMapOverlayType(MapProperties.MAP_OVERLAY_TYPE_HEATMAP); else if (MapProperties.MAP_POINTS_VALUE.equals(value)) activity.setMapOverlayType(MapProperties.MAP_OVERLAY_TYPE_POINTS); else if (MapProperties.MAP_SHAPES_VALUE.equals(value)) activity.setMapOverlayType(MapProperties.MAP_OVERLAY_TYPE_SHAPES); } else // set new filter options: activity.updateMapFilter(); // reload list view: ((SectionListAdapter) parent.getAdapter()).notifyDataSetChanged(); } }
protected void populateList() { final RMBTMainActivity activity = getRMBTMainActivity(); final SectionListAdapter sectionListAdapter = new SectionListAdapter(activity, R.layout.preferences_category); // add filter options for (final MapListSection mapListSection : activity.getMapFilterListSelectionList()) sectionListAdapter.addSection( mapListSection.getTitle(), new MapListSectionAdapter(activity, mapListSection)); // / final ListView listView = (ListView) view.findViewById(R.id.valueList); listView.setAdapter(sectionListAdapter); listView.setItemsCanFocus(true); listView.setOnItemClickListener(this); }