android compose CheckBox, RadioGroup 使用

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 = "单选结果")
        }

    }
}
相关推荐
熊猫钓鱼>_>6 小时前
Kotlin Multiplatform for OpenHarmony 实战:为 Reaktive 实现响应式原语适配(完整版 · 含摘要目录与技术图表)
华为·kotlin·大模型·ai编程·harmonyos·适配·reaktive
五彩小白7 小时前
自回归和上下文
android
事圆则缓9 小时前
Android 多渠道打包实战:Product Flavors、签名、AAB 与发包校验
android
树下困觉眯12 小时前
View绘制流程学习--获取WindowManager的三种方式
android·系统架构·view design
vilya13 小时前
我怎么给手机 GUI Agent 做双通道感知:无障碍树为主,投屏像素兜底
android·人工智能
李游Leo13 小时前
HarmonyOS 7 InsightBoard 多形态适配实录 06:ArkUI × 多设备回归:布局抖动、监听释放与全形态验收【鸿蒙心迹】
回归·kotlin·harmonyos
点燃大海13 小时前
手机给平板当键盘?
kotlin
李子红了时14 小时前
阿狸舞台APP(安卓端手机EncFS解密+压缩包解压+视频播放)
android·音视频
事圆则缓14 小时前
Android 使用 Jenkins 实现 CI/CD,并用 SonarQube 建立质量门禁
android·ci/cd·jenkins
其实防守也摸鱼14 小时前
DeepSeek Harness 开源贡献手记:从 Issue 到 Merge 的完整旅程
android·数据库·学习·ai·oracle·自动化