как установить переключатель установлен по умолчанию в radiogroup с Android
Я создал RadioGroup и RadioButton динамически, как показано ниже
RadioGroup radioGroup = new RadioGroup(context);
RadioButton radioBtn1 = new RadioButton(context);
RadioButton radioBtn2 = new RadioButton(context);
RadioButton radioBtn3 = new RadioButton(context);
radioBtn1.setText("Less");
radioBtn2.setText("Normal");
radioBtn3.setText("More");
radioBtn2.setChecked(true);
radioGroup.addView(radioBtn1);
radioGroup.addView(radioBtn2);
radioGroup.addView(radioBtn3);
здесь шаг radioBtn2.setChecked(true); причины radioBtn2 всегда проверяются. Это означает, что я не могу снять флажок radioBtn2 путем проверки двух других переключателей (radioBtn1,radioBtn3). Я хочу сделать это RadioGroup можно проверить только один переключатель в то время (теперь он может проверить два radiobutton одновременно). Как я могу решить эту проблему?
8 ответов:
вы должны проверить RadioButton в radiogroup такой:
radiogroup.check(IdOfYourButton)конечно, вы сначала должны установить идентификатор для ваших радиокнопок
Edit: я забыл,
radioButton.getId()работает также, thx Ramesh
в случае для xml атрибута его
android:checkedButtonкоторая принимаетidнаRadioButtonчтобы быть проверены.<RadioGroup ... ... android:checkedButton="@+id/IdOfTheRadioButtonInsideThatTobeChecked" ... >....</RadioGroup>
в XML-файле установите
android:checkedButtonполе вRadioGroup, с идентификатором по умолчаниюRadioButton:<RadioGroup .... android:checkedButton="@+id/button_1"> <RadioButton android:id="@+id/button_1" ...../> <RadioButton android:id="@+id/button_2" ...../> <RadioButton android:id="@+id/button_3" ...../> </RadioGroup>
RadioGroup radioGroup = new RadioGroup(WvActivity.this); RadioButton radioBtn1 = new RadioButton(this); RadioButton radioBtn2 = new RadioButton(this); RadioButton radioBtn3 = new RadioButton(this); radioBtn1.setText("Less"); radioBtn2.setText("Normal"); radioBtn3.setText("More"); radioGroup.addView(radioBtn1); radioGroup.addView(radioBtn2); radioGroup.addView(radioBtn3); radioGroup.check(radioBtn2.getId());
RadioGroup radioGroup = new RadioGroup(context); RadioButton radioBtn1 = new RadioButton(context); RadioButton radioBtn2 = new RadioButton(context); RadioButton radioBtn3 = new RadioButton(context); radioBtn1.setText("Less"); radioBtn2.setText("Normal"); radioBtn3.setText("More"); radioGroup.addView(radioBtn1); radioGroup.addView(radioBtn2); radioGroup.addView(radioBtn3); radioBtn2.setChecked(true);
была такая же проблема в коде моего коллеги. Это звучит так,как Ваша Радиогруппа неправильно настроена с помощью переключателей. Именно по этой причине вы можете выбрать несколько переключателей. Я пробовал много вещей, наконец, я сделал трюк, который на самом деле неправильный, но отлично работает.
for ( int i = 0 ; i < myCount ; i++ ) { if ( i != k ) { System.out.println ( "i = " + i ); radio1[i].setChecked(false); } }здесь я установил один для цикла, который проверяет наличие доступных переключателей и отменяет выбор каждого, кроме нового нажатого. попробовать его.
Это ошибка RadioGroup
RadioButton radioBtn2 = new RadioButton(context);radioBtn2 без viewId, и generateViewId находится в onChildViewAdded ()
public void onChildViewAdded(View parent, View child) { if (parent == RadioGroup.this && child instanceof RadioButton) { int id = child.getId(); // generates an id if it's missing if (id == View.NO_ID) { id = View.generateViewId(); child.setId(id); } ((RadioButton) child).setOnCheckedChangeWidgetListener( mChildOnCheckedChangeListener); } if (mOnHierarchyChangeListener != null) { mOnHierarchyChangeListener.onChildViewAdded(parent, child); } }Итак, во-первых radioGroup.addView (radioBtn2), затем radioBtn2.setChecked (true);
вот так:
RadioGroup radioGroup = new RadioGroup(context); RadioButton radioBtn1 = new RadioButton(context); RadioButton radioBtn2 = new RadioButton(context); RadioButton radioBtn3 = new RadioButton(context); radioBtn1.setText("Less"); radioBtn2.setText("Normal"); radioBtn3.setText("More"); radioGroup.addView(radioBtn1); radioGroup.addView(radioBtn2); radioGroup.addView(radioBtn3); radioBtn2.setChecked(true);
Comments