Получение значения ArrayList, связанного с радиокнопкой, в радиогруппе в значениях Recyclerview - PullRequest
0 голосов
/ 30 апреля 2018

enter image description here

У меня есть макет как изображение. И в каждой группе есть радиокнопки внутри RadioGroup. Каждая радиопереключатель соответствует определенному идентификатору, который сохраняется в массиве. Мне нужно получить значения выбора всех радиокнопок и всех радиогрупп по нажатию кнопки в классе активности внутри события нажатия кнопки. Есть ли эффективная техника для достижения моих целей.

1 Ответ

0 голосов
/ 30 апреля 2018

Если вы используете radiogroup в xml, то Вы можете обработать событие click только в xml

<?xml version="1.0" encoding="utf-8"?>
<RadioGroup xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">
    <RadioButton android:id="@+id/radio_pirates"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/pirates"
        android:onClick="onRadioButtonClicked"/>
    <RadioButton android:id="@+id/radio_ninjas"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/ninjas"
        android:onClick="onRadioButtonClicked"/>
</RadioGroup>

и в вашей actvity (в которой размещен макет) обработайте нажатие кнопки мыши следующим образом:

public void onRadioButtonClicked(View view) {
    // Is the button now checked?
    boolean checked = ((RadioButton) view).isChecked();

    // Check which radio button was clicked
    switch(view.getId()) {
        case R.id.radio_pirates:
            if (checked)
                // Pirates are the best
            break;
        case R.id.radio_ninjas:
            if (checked)
                // Ninjas rule
            break;
    }
}

Как вы видите, он принимает идентификаторы, которые вы упомянули в макете. Теперь становится легко.

Предупреждение: 1. тип возврата метода должен быть void.

  1. имя метода должно совпадать с указанным в xml.

  2. И он должен иметь представление параметров класса View.

Что касается эффективности, вы просто устанавливаете тот же объект ClickListener. так что это эффективно.

Исходные документы для Android

...