Instead of passing the CharSequence array directly to builder.setSingleChoiceItems you need to use an adapter. Like this
ArrayAdapter<CharSequence> adapter = new ArrayAdapter<CharSequence>( getActivity(), R.layout.your_custom_view, choiceList); builder.setSingleChoiceItems(adapter, -1, new OnClickListener() { ... });
and then you can define the layout in your_custom_view.xml
<?xml version="1.0" encoding="utf-8"?> <CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/text1" android:layout_width="match_parent" android:layout_height="wrap_content" android:minHeight="?android:attr/listPreferredItemHeight" android:textAppearance="?android:attr/textAppearanceListItemSmall" android:textColor="?android:attr/textColorAlertDialogListItem" android:gravity="center_vertical" android:paddingStart="16dip" android:paddingEnd="7dip" android:ellipsize="marquee" />
This way you get the default style, as you have now. If you want to return the checkmark or want to configure it, the default value
android:checkMark="?android:attr/listChoiceIndicatorSingle"
source share