public void addBetterCacher(final Geocache cache) {
        if (Settings.isBetterCacherConnectorActive() && Tier.isValid(cache.getTier())) {
            final Context context = parentView.getContext();

            final View layout = activity.getLayoutInflater().inflate(R.layout.cache_information_item, parentView, false);
            layout.findViewById(R.id.addition).setVisibility(GONE);
            parentView.addView(layout);

            final TextView nameView = layout.findViewById(R.id.name);
            nameView.setText(R.string.cache_bettercacher);

            final TextView valueView = layout.findViewById(R.id.value);
            valueView.setText(cache.getTier().getI18nText());

            final LinearLayout linearLayout = layout.findViewById(R.id.linearlayout);

            final int iconHeight = (int) (context.getResources().getDimensionPixelSize(R.dimen.textSize_detailsPrimary) * 1.2);

            if (!cache.getCategories().isEmpty()) {
                final LinearLayout.LayoutParams lpCategory = new LinearLayout.LayoutParams(iconHeight, iconHeight);
                lpCategory.setMargins(8, 0, 0, 0);
                for (Category category : cache.getCategories()) {
                    final ImageView catIcon = new ImageView(context);
                    catIcon.setLayoutParams(lpCategory);
                    catIcon.setBackgroundResource(category.getIconId());
                    catIcon.setOnClickListener(v -> openBetterCacherMenu(v, cache));
                    linearLayout.addView(catIcon);
                }
            }
            valueView.setOnClickListener(v -> openBetterCacherMenu(v, cache));
        }
    }
Create a "name: value" line with html content.

@param nameId  the resource of the name field
@param value   the initial value
@param geocode the geocode for image getter
@return a pair made of the whole "name: value" line (to be able to hide it for example) and of the value (to update it)
main/src/main/java/cgeo/geocaching/ui/CacheDetailsCreator.java