Android RadiGroup позволяет осуществлять множественный выбор


Android API Level 24 (emulator), кажется, позволяет множественный выбор, если я предварительно выбираю несколько RadioButton изначально. Я просто хочу знать, является ли это ошибкой или нет?

Вот файл макета:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <RadioGroup
        android:id="@+id/radioGroup"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

       <RadioButton
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:text="@string/metal"
           android:checked="true"/>

        <RadioButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/classical"
            android:checked="true"/>

        <RadioButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/jazz"/>

    </RadioGroup>

</LinearLayout>

Приложение запускается следующим образом:

Введите описание изображения здесь

И если я нажму на Джаз, он станет таким:

Введите описание изображения здесь

1 3

1 ответ:

В вашем макете отсутствуют значения android:id для виджетов RadioButton. Это может сработать, если вы не начинаете с любого из них, предварительно проверенного в макете ресурса. Если вы собираетесь использовать android:checked в ресурсе компоновки, вам необходимо присвоить виджетам RadioButton идентификаторы виджетов. Этодавняя проблема , которая вряд ли изменится, поэтому "это всего лишь одна из тех вещей", с которыми нам приходится иметь дело при разработке приложений для Android.