【发布时间】: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