private SpinnerAdapter createSpinnerAdapter() {
        final ArrayAdapter<TextParam> adapter = new ArrayAdapter<TextParam>(spinner.getContext(), android.R.layout.simple_spinner_item, this.displayValues) {

            @NonNull
            @Override
            public View getView(final int position, final View convertView, @NonNull final ViewGroup parent) {
                final View view = super.getView(position, convertView, parent);
                fillTextParam(position, view);
                return view;
            }

            @Override
            public View getDropDownView(final int position, final View convertView, @NonNull final ViewGroup parent) {
                final View view = super.getDropDownView(position, convertView, parent);
                fillTextParam(position, view);
                return view;
            }

            private void fillTextParam(final int position, final View view) {
                final TextView tv = view.findViewById(android.R.id.text1);
                final TextParam tp = getItem(position);
                if (tp != null && tv != null) {
                    tv.setGravity(Gravity.CENTER_VERTICAL);
                    tp.applyTo(tv);
                }
            }
        };
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        return adapter;
    }
if spinner should be represented by a (GUI) Spinner, set this spinner element here
main/src/main/java/cgeo/geocaching/ui/TextSpinner.java