简体   繁体   English

单选按钮未取消选中

[英]RadioButton Not Unchecking

I know this has been asked a lot but I'm still quite unable to find a workaround for this one. 我知道这个问题已经被问了很多,但是我仍然无法找到解决该问题的方法。 These radio buttons are not clearing when I select another radio button. 当我选择另一个单选按钮时,这些单选按钮没有清除。 I don't want them to return or display a value but rather set the value. 我不希望他们返回或显示值,而是设置值。

All three radio buttons are inside the radio group with ID radioGroup 所有三个单选按钮都在ID为radioGroup的单选组中

Please help. 请帮忙。 Thank you :) 谢谢 :)

public void onRadioButtonClicked(View view) {
    boolean checked = ((RadioButton) view).isChecked();

    switch(view.getId()) {
        case R.id.radioButton_plumber:
            if(checked) {
                internalWorkerType = "Plumbers";
                dbRef = db.getReference(Common.user_workers_table).child(internalWorkerType);
            }
            break;
        case R.id.radioButton_carpenter:
            if(checked) {
                internalWorkerType = "Carpenters";
                dbRef = db.getReference(Common.user_workers_table).child(internalWorkerType);
            }
            break;
        case R.id.radioButton_electrician:
            if(checked) {
                internalWorkerType = "Electricians";
                dbRef = db.getReference(Common.user_workers_table).child(internalWorkerType);
            }
            break;
    }

XML Code XML代码

<RadioGroup
    android:id="@+id/radioGroup"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginEnd="8dp"
    android:layout_marginStart="8dp"
    android:layout_marginTop="8dp"
    android:orientation="horizontal"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.0"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/textview_generic1">

    <android.support.constraint.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <RadioButton
            android:id="@+id/radioButton_plumber"
            android:layout_width="104dp"
            android:layout_height="wrap_content"
            android:layout_marginBottom="8dp"
            android:layout_marginTop="8dp"
            android:onClick="onRadioButtonClicked"
            android:text="Plumber"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toStartOf="@+id/radioButton_carpenter"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintHorizontal_chainStyle="spread_inside"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />

        <RadioButton
            android:id="@+id/radioButton_carpenter"
            android:layout_width="104dp"
            android:layout_height="wrap_content"
            android:layout_marginTop="8dp"
            android:onClick="onRadioButtonClicked"
            android:text="Carpenter"
            app:layout_constraintEnd_toStartOf="@+id/radioButton_electrician"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toEndOf="@+id/radioButton_plumber"
            app:layout_constraintTop_toTopOf="parent" />

        <RadioButton
            android:id="@+id/radioButton_electrician"
            android:layout_width="104dp"
            android:layout_height="wrap_content"
            android:layout_marginBottom="8dp"
            android:layout_marginTop="8dp"
            android:onClick="onRadioButtonClicked"
            android:text="Electrician"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toEndOf="@+id/radioButton_carpenter"
            app:layout_constraintTop_toTopOf="parent" />

    </android.support.constraint.ConstraintLayout>

</RadioGroup>

RadioButtons必须是RadioGroup直接RadioGroup ,删除constraintLayout使用

Try by keeping the ConstraintLayout outside. 尝试通过将ConstraintLayout保留在外面。

<android.support.constraint.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">
<RadioGroup
    android:id="@+id/radioGroup"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginEnd="8dp"
    android:layout_marginStart="8dp"
    android:layout_marginTop="8dp"
    android:orientation="horizontal"
   >


        <RadioButton
            android:id="@+id/radioButton_plumber"
            android:layout_width="104dp"
            android:layout_height="wrap_content"
            android:layout_marginBottom="8dp"
            android:layout_marginTop="8dp"
            android:onClick="onRadioButtonClicked"
            android:text="Plumber"

             />

        <RadioButton
            android:id="@+id/radioButton_carpenter"
            android:layout_width="104dp"
            android:layout_height="wrap_content"
            android:layout_marginTop="8dp"
            android:onClick="onRadioButtonClicked"
            android:text="Carpenter"
             />

        <RadioButton
            android:id="@+id/radioButton_electrician"
            android:layout_width="104dp"
            android:layout_height="wrap_content"
            android:layout_marginBottom="8dp"
            android:layout_marginTop="8dp"
            android:onClick="onRadioButtonClicked"
            android:text="Electrician"
           />
</RadioGroup>

  </android.support.constraint.ConstraintLayout>

If you'd like to use ConstraintLayout to manage RadioButton widgets layout, please visit https://github.com/samlu/ConstraintRadioGroup 如果您想使用ConstraintLayout来管理RadioButton小部件的布局,请访问https://github.com/samlu/ConstraintRadioGroup

The blRadioGroup widget can help to manage the changes of checked RadioButton in a ConstraintLayout . blRadioGroup小部件可以帮助管理ConstraintLayout中选中的RadioButton的更改。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM