@Override
    public View getView(final int position, View convertView, final ViewGroup parent) {
      if (convertView == null) {
        final LayoutInflater inflater = ((Activity) context).getLayoutInflater();
        convertView = inflater.inflate(R.layout.map_filter_item, parent, false);
      }

      final TextView titleTextView = (TextView) convertView.findViewById(android.R.id.title);
      final TextView summaryTextView = (TextView) convertView.findViewById(android.R.id.summary);

      final RadioButton checkedTextView = (RadioButton) convertView.findViewById(R.id.radiobutton);

      // /

      final MapListEntry entry = (MapListEntry) getItem(position);

      // /

      titleTextView.setText(entry.getTitle());
      summaryTextView.setText(entry.getSummary());

      checkedTextView.setChecked(entry.isChecked());

      return convertView;
    }
  @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();
    }
  }
예제 #3
0
  /** @return */
  public MapListEntry getCheckedMapListEntry() {

    for (final MapListEntry entry : mapListEntryList) if (entry.isChecked()) return entry;

    return null;
  }
예제 #4
0
  /** @param mapListEntryList */
  public void setMapListEntryList(final List<MapListEntry> mapListEntryList) {
    this.mapListEntryList = mapListEntryList;

    for (final MapListEntry entry : mapListEntryList) entry.setSection(this);
  }