You can avoid an intermediate `ArrayList` creation (and spare one call to `adapter.getCheckedOrAllCaches` which creates a list too) by using:

```java
    public void removeFromHistory() {
        final List<Geocache> caches = adapter.getCheckedOrAllCaches();
        final String geocodes[] = new String[caches.size()];
        for (int i = 0; i < geocodes.length; i++) {
            geocodes[i] = caches.get(i).getGeocode();
        }
        Bundle b = new Bundle();
        b.putStringArray(EXTRA_CACHELIST, geocodes);
        getSupportLoaderManager().initLoader(CacheListLoaderType.REMOVE_FROM_HISTORY.ordinal(), b, this);
    }
```