// TestRadioButton1 Example // Source code file: MainActivity.kt // Display the currently checked radio button when // the button is clicked. // Jetpack Compose does not have radiobutton groups. // Instead, keep a single state variable that indicates // which radiobutton is selected. package it372.ssmith.testradiobutton1 import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.activity.enableEdgeToEdge import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.material3.Button import androidx.compose.material3.RadioButton import androidx.compose.material3.Switch import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) enableEdgeToEdge() setContent { MainLayout( ) } } } @Composable fun MainLayout( ) { // State variables for composables var selected = remember { mutableStateOf(0) } var textDisplay = remember { mutableStateOf("") } Column(Modifier.padding(all = 50.dp), horizontalAlignment = Alignment.CenterHorizontally) { Row(verticalAlignment = Alignment.CenterVertically) { RadioButton( selected = selected.value == 1, onClick = { selected.value = 1 }, modifier = Modifier .padding(all = 20.dp) .size(width = 50.dp, height = 50.dp) ) Text(text = "Asparagus") } Row(verticalAlignment = Alignment.CenterVertically) { RadioButton( selected = selected.value == 2, onClick = { selected.value = 2 }, modifier = Modifier .padding(all = 20.dp) .size(width = 50.dp, height = 50.dp) ) Text(text = "Broccoli") } Row(verticalAlignment = Alignment.CenterVertically) { RadioButton( selected = selected.value == 3, onClick = { selected.value = 3 }, modifier = Modifier .padding(all = 20.dp) .size(width = 50.dp, height = 50.dp) ) Text(text = "Cabbage") } Button(onClick = { val vegetable = if (selected.value == 1) "Asparagus" else if (selected.value == 2) "Banana" else if (selected.value == 3) "Cabbage" else { "" } textDisplay.value = "Fruit: $vegetable" }) { Text(text = "Show Checked Vegetable") } Text(text = textDisplay.value , Modifier .padding(all = 30.dp) .size(width=200.dp, height=100.dp), fontSize = 25.sp) } } @Preview(showBackground = true) @Composable fun GreetingPreview() { MainLayout( ) }