android compose CheckBox, RadioGroup 使用

/**
* Author : wn
* Email : maoning20080809@163.com
* Date : 2026/1/3 20:02
* Description :
*/
class CheckBoxActivity : ComponentActivity(){
private var mActivity : Activity? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
mActivity = this
setContent {
Column() {
testCheckBox()
Spacer(modifier = Modifier.height(20.dp))
testRadioGroup()
}
}
}
@Preview
@Composable
private fun testCheckBox(){
//篮球
var checkedStateB by remember { mutableStateOf(false) }
//足球
var checkedStateF by remember { mutableStateOf(false) }
Column(modifier = Modifier.padding(20.dp)) {
Row() {
Text(text = "请选择", fontSize = 20.sp)
}
Row() {
Text(text = "篮球", fontSize = 20.sp)
Checkbox(
checked = checkedStateB,
onCheckedChange = {checkedStateB = it},
colors = CheckboxDefaults.colors(
checkedColor = Color.Green,
uncheckedColor = Color.Red
),
modifier = Modifier.size(30.dp),
enabled = true,
interactionSource = remember { MutableInteractionSource() }
)
Text(text = "足球", fontSize = 20.sp)
Checkbox(
checked = checkedStateF,
onCheckedChange = {checkedStateF = it},
colors = CheckboxDefaults.colors(
checkedColor = Color.Green,
uncheckedColor = Color.Red
),
modifier = Modifier.size(30.dp),
enabled = true,
interactionSource = remember { MutableInteractionSource() }
)
Button(onClick = {
Toast.makeText(mActivity, "选择结果:${checkedStateB} , ${checkedStateF}", Toast.LENGTH_LONG).show()
checkedStateB
}) {
Text("选择结果")
}
}
}
}
@Preview
@Composable
private fun testRadioGroup(){
val options = listOf("Option A", "Option B", "Option C")
var selectedIndex by remember { mutableStateOf(0) }
Text(text = "单选", modifier = Modifier.padding(start = 20.dp))
Column(modifier = Modifier.padding(10.dp)) {
options.forEachIndexed { index, option ->
Row(modifier = Modifier.fillMaxWidth().padding(10.dp),
){
RadioButton(selected = index == selectedIndex,
onClick = {selectedIndex = index})
Text(text = option, style = MaterialTheme.typography.bodyLarge,
modifier = Modifier.padding(start = 8.dp)
)
}
}
}
Button(onClick = {
Toast.makeText(mActivity, "单选结果:${selectedIndex} , ${options[selectedIndex]}", Toast.LENGTH_LONG).show()
}) {
Text(text = "单选结果")
}
}
}