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

    }
}
相关推荐
轩情吖1 分钟前
MySQL之事务管理
android·后端·mysql·adb·事务·隔离性·原子性
万物得其道者成27 分钟前
uni-app Android 离线打包:多环境(prod/dev)配置
android·opencv·uni-app
符哥200834 分钟前
Firebase 官方提供的Quick Start-Android 库的功能集讲解
android
koeda1 小时前
android17系统兼容
android·安卓
进击的cc2 小时前
面试官:Handler 没消息时为啥不卡死?带你从源码到底层内核彻底整明白!
android·面试
Yang-Never2 小时前
OpenGL ES ->YUV图像基础知识
android·java·开发语言·kotlin·android studio
2501_915921432 小时前
常用iOS性能测试工具大全及使用指南
android·测试工具·ios·小程序·uni-app·cocoa·iphone
晨尘光2 小时前
【Android下载gradle超时解决方法】
android
zhen_hong2 小时前
ReactAgent原理
android·java·javascript
皮皮宋吖2 小时前
皮皮宋渗透日记 11|文件包含漏洞全解析:LFI/RFI/ 伪协议 / 绕过 / 防御
android·安全