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

    }
}
相关推荐
KevinCyao36 分钟前
安卓android视频短信接口怎么集成?AndroidStudio视频短信开发指南
android
Android出海1 小时前
安卓侧载强制24小时冷却,第三方APK直投买量面临停摆
android·google play·app出海·android出海·android侧载·谷歌开发者·android开发者
kerli1 小时前
Compose 组件:LazyColumn 核心参数与 key/contentType 详解
android·前端
开发者如是说2 小时前
可能是最好用的多语言管理工具
android·前端·后端
流星雨在线2 小时前
[汇总]Android Framework相关
android·framework
小红的布丁2 小时前
Reactor 模型详解:单 Reactor、主从 Reactor 与 Netty 思想
android·java·开发语言
cch89182 小时前
Laravel与ThinkPHP5.x核心对比
android
酿情师3 小时前
PHP 反序列化漏洞与 POP 链详解:网络安全小白从零入门
android·web安全·php
数厘3 小时前
2.3MySQL 表结构设计:提升 SQL 查询性能的关键
android·sql·mysql
Kiri霧3 小时前
Kotlin递归
android·开发语言·kotlin