Как установить переключатель в Android - PullRequest
52 голосов
/ 09 ноября 2010

У меня есть приложение, которое использует радиокнопки.Значение по умолчанию для этой кнопки установлено в файле main.xml, например:

android:id="@+id/rb_sat1E"
android:checked="true"

В файле Java у меня есть:

final RadioButton radio1 = (RadioButton)findViewById(R.id.rb_sat1E);

Я также создал кнопку «Сброс»в основном файле Java и может использовать следующий код для сброса информации TextView, т. е.

pos1_deg.setText("0.0");

Но как мне сбросить переключатель?Я бы подумал, что это что-то вроде

radio1.setBoolean("TRUE");

Но это совсем не работает.

Любая помощь очень ценится.Спасибо.

Ответы [ 8 ]

91 голосов
/ 30 мая 2012

Если вы хотите сделать это в коде, вы можете позвонить проверяющему члену RadioGroup:

radioGroup.check(R.id.radioButtonId);

Это проверит указанную вами кнопку и отменит отметку для остальных.

89 голосов
/ 09 ноября 2010

Для радио-кнопки используйте

radio1.setChecked(true);

Нет смысла иметь только одну кнопку RadioButton. Если у вас их больше, вам нужно снять отметку с других через

radio2.setChecked(false); ...

Если ваша настройка только включена / выключена, используйте CheckBox.

30 голосов
/ 03 декабря 2011

Или вы можете сделать это в файле XML:

В RadioGroup , используя: android:checkedButton="id_button_to_check"

или в RadioButton :android:checked="true"

9 голосов
/ 27 сентября 2014

Просто чтобы уточнить это: если у нас есть RadioGroup с несколькими RadioButtons и нам нужно активировать один по индексу, подразумевается, что:

radioGroup.check(R.id.radioButtonId)

и

radioGroup.getChildAt(index)`

Мы можем сделать:

radioGroup.check(radioGroup.getChildAt(index).getId());
4 голосов
/ 10 марта 2015

, если вы выполнили дизайн в XML и хотите показать один из флажков в группе, как отмечено при загрузке страницы ниже, решения могут помочь вам

    <RadioGroup
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/txtLastNameSignUp"
        android:layout_margin="20dp"
        android:orientation="horizontal"
        android:id="@+id/radioGroup">
<RadioButton
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:checked="true"
    android:id="@+id/Male"
    android:text="Male"/>
        <RadioButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/Female"
            android:text="Female"/>
        </RadioGroup>
0 голосов
/ 02 января 2018

Много раз, если ваши радиокнопки принадлежат одной и той же радиогруппе, тогда

radioButton.setChecked (правда)

не будет правильно выбирать переключатель. Поэтому, чтобы решить эту проблему, попробуйте использовать вашу радиогруппу.

radioGroup.check (R.id.radioButtonId)

0 голосов
/ 17 ноября 2017

У меня есть несколько RadioButton без группы, и setChecked(true) работает, но setChecked(false) не работает. Но этот код работает:

RadioButton switcher = (RadioButton) view.findViewById(R.id.active);
                        switcher.setOnClickListener(new RadioButton.OnClickListener(){
                            @Override
                            public void onClick(View v) {
                                if(((RadioButton)v).isSelected()){
                                    ((RadioButton)v).setChecked(false);
                                    ((RadioButton)v).setSelected(false);
                                } else {
                                    ((RadioButton)v).setChecked(true);
                                    ((RadioButton)v).setSelected(true);
                                }
                            }

                        });
0 голосов
/ 10 мая 2016
btnDisplay.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {

            // get selected radio button from radioGroup
        int selectedId = radioSexGroup.getCheckedRadioButtonId();

        // find the radiobutton by returned id
            radioSexButton = (RadioButton) findViewById(selectedId);

        Toast.makeText(MyAndroidAppActivity.this,
            radioSexButton.getText(), Toast.LENGTH_SHORT).show();

    }

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