Android: пользовательский стиль RadioButton в AlertDialog - PullRequest
0 голосов
/ 14 марта 2020

Я создаю RadioGroup в AlertDialog следующим образом:

val items = listOf("1", "2")

AlertDialog.Builder(activity, R.style.MyStyle)
        .setSingleChoiceItems(items.toTypedArray(), 0) { dialog, index ->
            dialog.dismiss().   
        }
        .show()

Мой желаемый результат - чтобы этот AlertDialog выглядел следующим образом:

enter image description here

Итак, со стилем, мне нужно удалить фактическую прорисовку RadioButton, а затем иметь выбранный в настоящий момент RadioButton с серым фоном.

Как добиться этого дизайна с использованием стилей Android?

Ответы [ 2 ]

0 голосов
/ 16 марта 2020

Вот как выполнить sh этот стиль, используя AlertDialog.Builder.

In styles.xml:

<style name="MyStyle" parent="Theme.AppCompat.Light.Dialog.Alert">
    <item name="android:listChoiceIndicatorSingle">@null</item>
    <item name="android:background">@drawable/radio_button_background_selector</item>
</style>

radio_button_background_selector.xml:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_checked="true" android:drawable="@color/hig_light_grey" />
</selector>
0 голосов
/ 14 марта 2020

эти данные отображаются в списке? или его жестко закодированные данные?

если это просмотр списка или просмотрщика, его очень легко достичь, чего вы хотите. в вашем адаптере вы просто делаете это

 holder.cardlayout.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                check=true; // this is local Boolean  type variable
                previousposition = position;  // previouspostion is local int type var 

                notifyDataSetChanged();
            }
        });
        if (check) {
            if (previousposition == position) {

               //set color of card gray here

            } else {
               //set color of card is white here

            }
        }

имейте в виду, что это применимо, если вы используете listview / recyclerview

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...