如果选择了单选按钮,如何更改按钮色调形成单选按钮?



用户可以在4个不同的radioButton之间进行选择,每个都会设置一个不同的枚举。

一开始,我只是将它们放在布局中的radioGroup中,我发现圆圈和点的标准颜色来自radioButtons(黑色(是由深蓝色背景引起的"隐藏"。我尝试了一下,发现buttonTint是从radioButton更改圆/点颜色的正确属性。

现在我正在尝试编写一个 if 语句(在 if 语句中,请参阅下面的代码(,如果选择圆圈,则会导致圆圈的/dot 颜色与radioButton发生变化。这应该在我"激活"checking方法/按钮之前发生。

我尝试了一下,我学到的只是 5 种不同的方式,它不会改变颜色。

我将使用 XXXX 标记不起作用/缺少的方法。

爪哇代码:

public void setKnowledge() {
setContentView(R.layout.knowledge_level);
Button checking = (Button) findViewById(R.id.buttonChecking);
checking.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
checkSelection();
categoryAuswahl();
}
});
}
public knowledge checkSelection() {
RadioButton rbNoob = (RadioButton) findViewById(R.id.radioButtonNoob);
RadioButton rbBeginner = (RadioButton) findViewById(R.id.radioButtonBeginner);
RadioButton rbAdvanced = (RadioButton) findViewById(R.id.radioButtonAdv);
RadioButton rbPro = (RadioButton) findViewById(R.id.radioButtonPro);
RadioButton rbGrandMaster = (RadioButton) findViewById(R.id.radioButtonGM);
if(rbNoob.isChecked()) {
if(rbNoob.XXXX()) {
rbNoob.setButtonTintList(ColorStateList.valueOf(Color.parseColor("#511613")));
} else {
rbNoob.setBackgroundTintList(ColorStateList.valueOf(Color.parseColor("#E0E0E0")));
}
return knowledge.NOOB;
}
else if(rbBeginner.isChecked()) {
return knowledge.BEGINNER;
}
else if(rbAdvanced.isChecked()) {
return knowledge.ADVANCED;
}
else if(rbPro.isChecked()) {
return knowledge.PRO;
}
else if(rbGrandMaster.isChecked()) {
return knowledge.GM;
}
return null;
}

作为XXXX,我尝试了"isSelected((;","isPressed((","isEnabled((;",isActivated ((;"和"isChecked((;",但一切都不起作用。

颜色应该在用户按下单选按钮的那一刻发生变化,所以是"实时"的。

我的 XML(如果已关闭([knowledge_level.xml]

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/layoutTestwissenstand"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#081929">
<RadioGroup
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="32dp"
app:layout_constraintTop_toBottomOf="@+id/testWissenstandText"
android:layout_marginLeft="8dp"
app:layout_constraintLeft_toLeftOf="parent"
android:id="@+id/radioGroup"
app:layout_constraintRight_toLeftOf="@+id/buttonChecking"
android:layout_marginRight="8dp"
app:layout_constraintHorizontal_bias="0.538">
<RadioButton
android:id="@+id/radioButtonNoob"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="0dp"
android:layout_marginRight="0dp"
android:layout_marginTop="8dp"
android:checked="true"
android:text="Keine Vorkenntnisse"
android:textAlignment="center"
android:textColor="#E0E0E0"
android:textSize="18sp"
android:textStyle="bold"
app:buttonTint="#E0E0E0"
app:layout_constraintHorizontal_bias="0.505"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toLeftOf="@+id/buttonChecking"
app:layout_constraintTop_toBottomOf="@+id/testWissenstandText"/>
<RadioButton
android:id="@+id/radioButtonBeginner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="0dp"
android:layout_marginRight="0dp"
android:layout_marginTop="8dp"
android:checked="true"
android:text="Anfänger"
android:textAlignment="center"
android:textColor="#E0E0E0"
android:textSize="18sp"
android:textStyle="bold"
app:buttonTint="#E0E0E0"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintLeft_toLeftOf="@+id/radioButtonNoob"
app:layout_constraintRight_toRightOf="@+id/radioButtonNoob"
app:layout_constraintTop_toBottomOf="@+id/radioButtonNoob"/>
<RadioButton
android:id="@+id/radioButtonAdv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="0dp"
android:layout_marginRight="0dp"
android:layout_marginTop="8dp"
android:text="Fortgeschrittener"
android:textAlignment="center"
android:textColor="#E0E0E0"
android:textSize="18sp"
android:textStyle="bold"
app:buttonTint="#E0E0E0"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintLeft_toLeftOf="@+id/radioButtonBeginner"
app:layout_constraintRight_toRightOf="@+id/radioButtonBeginner"
app:layout_constraintTop_toBottomOf="@+id/radioButtonBeginner"/>
<RadioButton
android:id="@+id/radioButtonPro"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="0dp"
android:layout_marginRight="0dp"
android:layout_marginTop="8dp"
android:text="Pro"
android:textAlignment="center"
android:textColor="#E0E0E0"
android:textSize="18sp"
android:textStyle="bold"
app:buttonTint="#E0E0E0"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintLeft_toLeftOf="@+id/radioButtonAdv"
app:layout_constraintRight_toRightOf="@+id/radioButtonAdv"
app:layout_constraintTop_toBottomOf="@+id/radioButtonAdv"/>
<RadioButton
android:id="@+id/radioButtonGM"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="0dp"
android:layout_marginRight="0dp"
android:layout_marginTop="8dp"
android:text='"Grand Master"'
android:textAlignment="center"
android:textColor="#E0E0E0"
android:textSize="18sp"
android:textStyle="bold"
app:buttonTint="#E0E0E0"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintLeft_toLeftOf="@+id/radioButtonPro"
app:layout_constraintRight_toRightOf="@+id/radioButtonPro"
app:layout_constraintTop_toBottomOf="@+id/radioButtonPro"/>
</RadioGroup>
<ImageView
android:id="@+id/kastenKnowledge"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="16dp"
app:layout_constraintHorizontal_bias="0.517"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/kasten"/>
<TextView
android:id="@+id/testWissenstandHeader"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:text="Dein Wissensstand?"
android:textAlignment="center"
android:textColor="#511613"
android:textSize="32sp"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="@+id/kastenKnowledge"
app:layout_constraintLeft_toLeftOf="@+id/kastenKnowledge"
app:layout_constraintRight_toRightOf="@+id/kastenKnowledge"
app:layout_constraintTop_toTopOf="@+id/kastenKnowledge"/>
<TextView
android:id="@+id/testWissenstandText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:layout_marginStart="16dp"
android:layout_marginTop="24dp"
android:text='Wie würdest du deinen Wissenstandnbezüglich dem Spieleinhaltnvon "Overwatch" beurteilen?'
android:textAlignment="center"
android:textColor="#E0E0E0"
android:textSize="20sp"
app:layout_constraintHorizontal_bias="0.512"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/testWissenstandHeader"/>
<Button
android:id="@+id/buttonChecking"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_marginEnd="16dp"
android:layout_marginStart="0dp"
android:background="@drawable/button_box"
android:text="CnLnInCnK"
android:textAllCaps="false"
android:textColor="#511613"
android:textSize="16sp"
android:textStyle="bold"
app:layout_constraintRight_toRightOf="parent"
android:layout_marginRight="16dp"
app:layout_constraintBottom_toBottomOf="@+id/radioGroup"
android:layout_marginBottom="8dp"
app:layout_constraintTop_toTopOf="@+id/radioGroup"
android:layout_marginTop="8dp"
app:layout_constraintVertical_bias="0.5"/>

<TextView
android:id="@+id/knowledgeHint"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="0dp"
android:layout_marginRight="0dp"
android:text="Wenn du einen Wissenstandnfestgelegt hast, drücke dennKnopf daneben!"
android:textAlignment="center"
android:textColor="#FF4400"
android:textSize="20sp"
android:textStyle="bold|italic"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
android:layout_marginTop="32dp"
app:layout_constraintTop_toBottomOf="@+id/radioGroup"/>
</android.support.constraint.ConstraintLayout>

代码应该用java编写,如果可能的话,应该避免jQuery/javascript(或c#(。

您正在尝试更改单选按钮色调设置在选中更改/按钮单击对吗?

注意:如果您需要动态更改色调颜色,您的 API 级别必须为 21 及以上,然后仅应用它

您在按钮单击中再次重新初始化单选按钮,因此将再次创建所有单选按钮。

你必须喜欢这个

final RadioButton rbNoob = (RadioButton) findViewById(R.id.rbNoob);

1(. 如果要在设置中更改色调更改

rbNoob.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
if(b)
{
rbNoob.setButtonTintList(ColorStateList.valueOf(Color.parseColor("#511613")));
}
}
});

2(. 如果要在单击按钮时更改色调

button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(rbNoob.isChecked())
rbNoob.setButtonTintList(ColorStateList.valueOf(Color.parseColor("#511613")));
else
rbNoob.setBackgroundTintList(ColorStateList.valueOf(Color.parseColor("#E0E0E0")));
}
});

希望这对您有所帮助...

Button checking;
RadioButton rbNoob,rbBeginner,rbAdvanced,rbPro,rbGrandMaster;
public void setKnowledge() {
setContentView(R.layout.knowledge_level);
checking = (Button) findViewById(R.id.buttonChecking);
rbNoob = (RadioButton) findViewById(R.id.radioButtonNoob);
rbBeginner = (RadioButton) findViewById(R.id.radioButtonBeginner);
rbAdvanced = (RadioButton) findViewById(R.id.radioButtonAdv);
rbPro = (RadioButton) findViewById(R.id.radioButtonPro);
rbGrandMaster = (RadioButton) findViewById(R.id.radioButtonGM);
checking.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
checkSelection();
categoryAuswahl();
}
});
}
public knowledge checkSelection() {

if(rbNoob.isChecked()) {
if(rbNoob.XXXX()) {
rbNoob.setButtonTintList(ColorStateList.valueOf(Color.parseColor("#511613")));
} else {
rbNoob.setBackgroundTintList(ColorStateList.valueOf(Color.parseColor("#E0E0E0")));
}
return knowledge.NOOB;
}
else if(rbBeginner.isChecked()) {
return knowledge.BEGINNER;
}
else if(rbAdvanced.isChecked()) {
return knowledge.ADVANCED;
}
else if(rbPro.isChecked()) {
return knowledge.PRO;
}
else if(rbGrandMaster.isChecked()) {
return knowledge.GM;
}
return null;
}

最新更新