Arhn - архитектура программирования

Как установить значение радиокнопки внутри радиогруппы android

Я пытаюсь использовать радиогруппы, в которых есть 2 радиокнопки. Я хотел установить значение для каждой радиокнопки, например, значение «мужской» и «женский». После этого, когда я уже нажму на свой переключатель, он отобразит выбранное значение. Как вы можете достичь этого? Спасибо вам за помощь.

я пробовал что-то подобное, просто чтобы проверить, как я буду устанавливать значение

public void onRadioButtonClicked(View radioButton) {
    int count = radioGroup.getChildCount();
    for (int i = 0; i < count; i++) {
        View o = radioGroup.getChildAt(i);
        if (o instanceof RadioButton) {

            RadioButton radioBtn =  (RadioButton)o;
            // get the state
            boolean isChecked = radioBtn.isChecked();
            // to set the check
            radioBtn.setChecked(true);

        }
    }
}

но я думаю, что это не то, что я ищу.

Я уже пробовал radioGroup.setId(), предполагая, что переключатели уже имеют значения, но они просто отображают бессмысленный номер.


  • Если вы ничего не пробовали, я предлагаю вам это сделать. что-то, что может помочь: OnCheckedChangeListener 21.07.2015
  • Я обновил свой вопрос @Karakuri 21.07.2015

Ответы:


1

Для обнаружения когда выбран RadioButton. В вашем макете XML:

<RadioGroup
    android:id="@+id/radioGroup"
    ... >

    <RadioButton
        android:id="@+id/radioButton1"
        ... />

    <RadioButton
        android:id="@+id/radioButton2"
        ... />
</RadioGroup>

В своем действии/фрагменте настройте так:

RadioGroup radioGroup = (RadioGroup) findViewById(R.id.radioGroup);
radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangedListener() {

    @Override
    public void onCheckedChanged(RadioGroup group, int checkedId) {
        <type> value = <default value>;
        switch (checkedId) {
        case R.id.radioButton1:
            value = ...;
            break;
        case R.id.radioButton2:
            value = ...;
            break;
        }
        // do something with value
    }
});
21.07.2015
  • У меня ошибка, говорящая Cannot resolve method 'setOnCheckedChangedListener()" нужно ли мне импортировать @Karakuri 21.07.2015
  • Была опечатка, исправил 22.07.2015

  • 2

    Убедитесь, что ваши переключатели заключены в группу переключателей, как показано ниже:

            <RadioGroup
                android:id="@+id/myRadioGroup"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal">
    
                <RadioButton
                    android:id="@+id/radioGroupButtonMale"
                    android:layout_width="0dp"
                    android:layout_weight="1"
                    android:layout_height="wrap_content" />
    
                <RadioButton
                    android:id="@+id/radioGroupButtonFemale"
                    android:layout_width="0dp"
                    android:layout_weight="1"
                    android:layout_height="wrap_content"/>
            </RadioGroup>
    

    И в коде, чтобы установить значение,

    RadioGroup mySelection = (RadioGroup)findViewById(R.id.myRadioGroup);
    int radioButtonId = mySelection.getCheckedRadioButtonId();
    String selectedValue;
        switch (radioButtonId)
        {
            case R.id.radioGroupButtonMale:
                selectedValue = "Value for Male";
                break;
            case R.id.radioGroupButtonFemale:
                selectedValue = "Value for Female";
                break;
        }
    
    21.07.2015
  • Вы должны использовать RadioGroup.OnCheckedChangedListener. 21.07.2015
  • Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..