【问题标题】:RadioButton Not Unchecking单选按钮未取消选中
【发布时间】:2019-07-28 10:29:04
【问题描述】:

我知道这已经被问了很多,但我仍然无法找到解决这个问题的方法。当我选择另一个单选按钮时,这些单选按钮不会清除。我不希望他们返回或显示一个值,而是设置该值。

所有三个单选按钮都在 ID radioGroup 的单选组内

请帮忙。谢谢你:)

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 代码

<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>

【问题讨论】:

  • 什么意思"...单选按钮未清除..."?你的意思是不删除选择?
  • @Dumbo 是的,它应该只选择组中的一个单选按钮,而不是选择您选择的所有按钮,这就是我的代码所发生的事情。
  • 你确定他们在同一个电台组吗?可以提供xml代码吗?
  • 这不会发生。你确定它在 Radiogroup 下吗?
  • RadioButton 必须是 RadioGroup 的直接子元素,删除 constraintLayout 即可使用

标签: android radio-button


【解决方案1】:

RadioButtons 必须是 RadioGroup 的直接子代,删除 constraintLayout 即可

【讨论】:

    【解决方案2】:

    尝试将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>
    

    【讨论】:

      【解决方案3】:

      如果您想使用ConstraintLayout 管理RadioButton 小部件布局,请访问https://github.com/samlu/ConstraintRadioGroup

      blRadioGroup 小部件可以帮助管理 ConstraintLayout 中选中的 RadioButton 的更改。

      【讨论】:

        猜你喜欢
        • 2012-01-23
        • 2012-03-17
        • 1970-01-01
        • 1970-01-01
        • 2016-01-23
        • 2012-01-31
        • 2023-03-29
        • 2017-05-05
        相关资源
        最近更新 更多