package com.example.convertitoreculinario import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.activity.enableEdgeToEdge import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.width import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.ArrowDropDown import androidx.compose.material3.Button import androidx.compose.material3.DropdownMenu import androidx.compose.material3.DropdownMenuItem import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme import androidx.compose.material3.OutlinedTextField import androidx.compose.material3.Surface 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 com.example.convertitoreculinario.ui.theme.ConvertitoreCulinarioTheme class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) enableEdgeToEdge() setContent { ConvertitoreCulinarioTheme { Surface(modifier = Modifier.fillMaxSize()) { ConvertitoreCulinario() } } } } } @Composable fun ConvertitoreCulinario() { var daSrotolata = remember { mutableStateOf(false) } var aSrotolata = remember { mutableStateOf(false) } var inputCasella = remember { mutableStateOf(value="") } var daUnita = remember { mutableStateOf(value="") } var aUnita = remember { mutableStateOf(value="") } var conversione = remember { mutableStateOf(value="") } fun Converti() : String { val input = inputCasella.value.toDoubleOrNull() ?: 0.0 val risultatoConversione = when (daUnita.value) { "Tazze" -> when (aUnita.value) { "ml" -> input * 200 "grammi" -> input * 125 else -> "" } "Bicchieri" -> when (aUnita.value) { "ml" -> input * 200 "grammi" -> input * 125 else -> "" } "Cucchiai" -> when (aUnita.value) { "ml" -> input * 200 "grammi" -> input * 125 else -> "" } else -> "" } return risultatoConversione.toString() } Column( modifier = Modifier.fillMaxSize(), verticalArrangement = Arrangement.Center, horizontalAlignment = Alignment.CenterHorizontally ) { Text("Convertitore Culinario", style = MaterialTheme.typography.headlineLarge) Spacer(modifier = Modifier.height(16.dp)) OutlinedTextField( value = inputCasella.value, onValueChange = { inputCasella.value = it conversione.value = Converti() }, label = {Text("Enter Value") }) Spacer(modifier = Modifier.height(16.dp)) Row { Box { Button(onClick = { daSrotolata.value = true }) { Text(text = daUnita.value) Icon( Icons.Default.ArrowDropDown, contentDescription = "Freggia giú" ) //accessibilitá ... } DropdownMenu(expanded = daSrotolata.value, onDismissRequest = { daSrotolata.value = false}) { DropdownMenuItem( text = { Text("Tazze") }, onClick = { daSrotolata.value = false daUnita.value = "Tazze" conversione.value = Converti() } ) DropdownMenuItem( text = { Text("Cucchiai") }, onClick = { daSrotolata.value = false daUnita.value = "Cucchiai" conversione.value = Converti() } ) DropdownMenuItem( text = { Text("Bicchieri") }, onClick = { daSrotolata.value = false daUnita.value = "Bicchieri" conversione.value = Converti() } ) } } Spacer(modifier = Modifier.width(16.dp)) Box { Button(onClick = {aSrotolata.value = true }) { Text(text = aUnita.value) Icon( Icons.Default.ArrowDropDown, contentDescription = "Freggia giú" ) //accessibilitá ... } DropdownMenu(expanded = aSrotolata.value, onDismissRequest = { aSrotolata.value = false }) { DropdownMenuItem( text = { Text("ml") }, onClick = { aSrotolata.value = false aUnita.value = "ml" conversione.value = Converti() } ) DropdownMenuItem( text = { Text("grammi") }, onClick = { aSrotolata.value = false aUnita.value = "grammi" conversione.value = Converti() } ) } } } Spacer(modifier = Modifier.height(30.dp)) Text("Pari a:" + conversione.value, style = MaterialTheme.typography.headlineMedium ) } } @Preview(showBackground = true) @Composable fun ConvertitoreCulinarioPreview() { ConvertitoreCulinarioTheme { ConvertitoreCulinario() } }