@Override
    protected void onActivityResult(final int requestCode, final int resultCode, final Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == REQUEST_SELECT_FILTER && resultCode == Activity.RESULT_OK) {
            final int index = data.getIntExtra(EXTRA_NESTED_FILTER_POSITION, -1);
            if (index >= 0 && filterListAdapter.getItems().get(index) instanceof LogicalFilterViewHolder) {
                final LogicalGeocacheFilter newFilter = (LogicalGeocacheFilter) ((GeocacheFilterContext) data.getParcelableExtra(EXTRA_FILTER_CONTEXT)).get().getTree();
                ((LogicalFilterViewHolder) filterListAdapter.getItems().get(index)).setViewFromFilter(newFilter);
            }
        }
    }
Show a filter selection using an {@code ExpandableListView}.
main/src/main/java/cgeo/geocaching/filters/gui/GeocacheFilterActivity.java