Как сложить значения из разных OutlinedTextField в Jetpack Compose

Мне нужно в приложении посчитать площадь фигуры длинна и высота(если точнее, но неважно диаметр и высота цилиндра) Высота вводится в одном окне ввода, а диаметр в другом. Графику приложения скидывать смысла нет.


Ответы (1 шт):

Автор решения: Андрей Никитин

Сначала добавим зависимости:

dependencies
    implementation("androidx.compose.ui:ui:1.5.4")

    implementation("androidx.compose.material:material:1.5.4")

Далее в setContent помещаем MyApp().

А вот и сама MyApp:

@Composable
fun MyApp() {
    MaterialTheme {
        Column(
            modifier = Modifier.padding(16.dp),
            verticalArrangement = Arrangement.spacedBy(16.dp)
        ) {
            // Поля ввода
            val number1 = remember { mutableStateOf("") }
            val number2 = remember { mutableStateOf("") }
            OutlinedTextField(
                value = number1.value,
                onValueChange = { number1.value = it },
                label = { Text("Number 1") },
                keyboardOptions = KeyboardOptions(keyboardType = Number)
            )
            OutlinedTextField(
                value = number2.value,
                onValueChange = { number2.value = it },
                label = { Text("Number 2") },
                keyboardOptions = KeyboardOptions(keyboardType = Number)
            )
            // Кнопка умножения
            val result = remember { mutableStateOf(0f) }
            Button(onClick = {
                val num1 = number1.value.toFloatOrNull() ?: 0f
                val num2 = number2.value.toFloatOrNull() ?: 0f
                val multiplyResult = num1 * num2
                result.value = multiplyResult
            })
            {
                Text("Multiply")
            }
            // Результат
            Text("Result: ${result.value}")
        }
    }
}
→ Ссылка