package com.example.compose_01 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.Spacer import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.width import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.items import androidx.compose.foundation.text.KeyboardOptions import androidx.compose.material3.Button import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Scaffold import androidx.compose.material3.Text import androidx.compose.material3.TextField import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateListOf import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.text.input.KeyboardType import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import com.example.compose_01.ui.theme.Compose01Theme class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) enableEdgeToEdge() setContent { Compose01Theme { Scaffold(modifier = Modifier.fillMaxSize()) { innerPadding -> Column { Greeting( name = "Android", modifier = Modifier.padding(innerPadding) ) //Counter() //SimpleAdderApp() TodoListApp() } } } } } } @Composable fun TodoListApp() { var newItemText by remember { mutableStateOf("") } val todoItems = remember { mutableStateListOf() } Column(modifier = Modifier.padding(16.dp)) { Row(verticalAlignment = Alignment.CenterVertically) { TextField( value = newItemText, onValueChange = { newItemText = it }, modifier = Modifier.weight(1f), label = { Text("Nový úkol") } ) Spacer(modifier = Modifier.width(8.dp)) Button(onClick = { if (newItemText.isNotBlank()) { todoItems.add(newItemText) newItemText = "" // Vyčistí pole po přidání } }) { Text("Přidat") } } Spacer(modifier = Modifier.height(16.dp)) LazyColumn { items(todoItems) { item -> Text(text = "• $item", modifier = Modifier.padding(vertical = 4.dp)) } } } } @Composable fun SimpleAdderApp() { var number1 by remember { mutableStateOf("") } var number2 by remember { mutableStateOf("") } var sum by remember { mutableStateOf(0) } Column(modifier = Modifier.padding(16.dp), horizontalAlignment = Alignment.CenterHorizontally) { TextField( value = number1, onValueChange = { number1 = it }, label = { Text("První číslo") }, keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number) ) TextField( value = number2, onValueChange = { number2 = it }, label = { Text("Druhé číslo") }, keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number) ) Spacer(modifier = Modifier.height(8.dp)) Button(onClick = { // Převede text na čísla a sečte je sum = number1.toInt() + number2.toInt() }) { Text("Sečti") } Spacer(modifier = Modifier.height(16.dp)) // Zobrazí výsledek, pouze pokud je platný Text(text = "Výsledek: $sum", style = MaterialTheme.typography.headlineMedium) } } @Composable fun Counter() { var count by remember { mutableStateOf(5) } // Deklarace stavu Column { Text(text = count.toString()) // UI je svázáno se stavem Button(onClick = { count++ // Pouze změna stavu, UI se aktualizuje automaticky }) { Text("Click Me") } } } @Composable fun Greeting(name: String, modifier: Modifier = Modifier) { Text( text = "Hello $name!", modifier = modifier ) } @Preview(showBackground = true) @Composable fun GreetingPreview() { Compose01Theme { Greeting("Android") } }