Как установить переключатель в Android
У меня есть приложение, которое использует переключатели. Значение по умолчанию для этой кнопки устанавливается в файле main.xml, то есть:
android:id="@+id/rb_sat1E"
android:checked="true"
В файле Java я:
final RadioButton radio1 = (RadioButton)findViewById(R.id.rb_sat1E);
Я также создал кнопку "Reset" в главном файле Java и может использовать следующий код для reset информации TextView, т.е.
pos1_deg.setText("0.0");
Но как я reset переключатель? Я бы подумал, что это что-то вроде
radio1.setBoolean("TRUE");
Но это не работает вообще.
Любая помощь очень ценится. Спасибо.
Ответы
Ответ 1
Для использования radioButton
radio1.setChecked(true);
Не имеет смысла иметь только один RadioButton. Если у вас их больше, вам нужно отключить других через
radio2.setChecked(false); ...
Если ваш параметр включен, используйте CheckBox.
Ответ 2
Если вы хотите сделать это в коде, вы можете вызвать контрольный элемент RadioGroup:
radioGroup.check(R.id.radioButtonId);
Это проверит указанную вами кнопку и снимите отметку с других.
Ответ 3
Или вы можете сделать это в файле XML:
В RadioGroup, используя: android:checkedButton="id_button_to_check"
или в RadioButton: android:checked="true"
Ответ 4
Просто, чтобы прояснить это: если у нас есть RadioGroup
с несколькими RadioButtons
и нужно активировать его по индексу, это означает, что:
radioGroup.check(R.id.radioButtonId)
и
radioGroup.getChildAt(index)`
Мы можем сделать:
radioGroup.check(radioGroup.getChildAt(index).getId());
Ответ 5
если вы сделали дизайн в формате 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>
Ответ 6
У меня есть несколько RadioButtons без Group и 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);
}
}
});
Ответ 7
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();
}
});