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

    }
}
相关推荐
DogDaoDao8 小时前
Android 硬件编码器参数完全指南:MediaCodec 深度解析
android·音视频·视频编解码·h264·硬编码·视频直播·mediacodec
JohnnyDeng948 小时前
Android 自定义 View:Canvas 绘图与事件分发深度解析
android
Android小码家12 小时前
Framework之Launcher小窗开发
android·framework·虚拟屏·小窗
赏金术士12 小时前
第七章:状态管理实战与架构总结
android·ui·kotlin·compose
颂love13 小时前
MySQL的执行流程
android·数据库·mysql
云起SAAS18 小时前
抖音小游戏源码 - 消消乐 | 含激励广告+成就系统 | 开箱即用商业级消除游戏模板
android·游戏·广告联盟·看激励广告联盟流量主·抖音小游戏源码 - 消消乐
大貔貅喝啤酒19 小时前
基于Windows下载安装Android Studio 3.3.2版本教程(2026详细图文版)
android·java·windows·android studio
程序员码歌19 小时前
OpenSpec 到 Superpowers:AI 编码从说清到做对
android·前端·人工智能
2501_9151063219 小时前
深入解析无源码iOS加固原理与方案,保护应用安全
android·安全·ios·小程序·uni-app·cocoa·iphone
黄林晴1 天前
重磅官宣:Android UI 开发正式进入 Compose-first 时代
android·google io