Modificarea Textului
Urmatorul lucru pe care il vom realiza este sa schimbam textul afisat.
Vom folosi Code View pentru a studia continutul fisierului MainActivity.kt. Observăm că există câteva funcții generate automat în acest cod, în special funcțiile onCreate() și setContent().
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
// Punct de intrare in aplicatie, un fel de main
super.onCreate(savedInstanceState)
setContent {
GreetingCardTheme {
// Un container de suprafață care folosește culoarea 'background' din temă
Surface(
modifier = Modifier.fillMaxSize(),
color = MaterialTheme.colorScheme.background
) {
Greeting("Android")
}
}
}
}
}
Compilatorul ia codul Kotlin scris, si il translateaza in bytecode de Java Virtual Machine
Funcția onCreate() este punctul de intrare în această aplicație Android și
apelează alte funcții pentru a construi interfața utilizatorului. În programele
Kotlin, funcția main() este punctul de intrare/punctul de început al
execuției. În aplicațiile Android, funcția onCreate() îndeplinește acest rol.
Funcția setContent() din interiorul funcției onCreate() este utilizată
pentru a defini layoutul prin funcții compozabile. Toate funcțiile marcate cu
adnotarea @Composable pot fi apelate din funcția setContent() sau din alte
funcții Composable. Adnotarea spune compilatorului Kotlin că această funcție
este utilizată de Jetpack Compose (framework-ul ce se ocupa de interfata
grafica) pentru a genera UI-ul.
O funcție compozabilă (composable function) în contextul Jetpack Compose, este o funcție utilizată pentru a defini elementele interfeței utilizator în mod declarativ.
În continuare, ne vom uita la funcția Greeting(). Funcția Greeting() este o
funcție Composable, observăm adnotarea @Composable de deasupra ei. Această
funcție Composable primește un input și generează ceea ce este afișat pe ecran.
@Composable
fun Greeting(name: String, modifier: Modifier = Modifier) {
// Afiseaza in interfata grafica un obiect (View) de tip casuta Text
Text(
text = "Hello $name!",
modifier = modifier
)
}
@Composable
fun Greeting(name: String, modifier: Modifier = Modifier) {
Text(
text = "Hello $name!",
modifier = modifier
)
}
În prezent, funcția Greeting() primește un nume și afișează "Hello" pentru acea persoană.
- Actualizăm funcția
Greeting()pentru a ne prezenta:
@Composable
fun Greeting(name: String, modifier: Modifier = Modifier) {
Text(
text = "Salut, numele meu este $name!",
modifier = modifier
)
}
- Vom rula pe telefon pentru a vedea schimbarea.
Excelent! Ai schimbat textul, dar te prezintă ca Android, ceea ce probabil nu este numele tău. În continuare, vom personaliza aplicatia pentru a te afisa numele nostru!
- Actualizează funcția
GreetingPreview()cu numele tău.
@Preview(showBackground = true)
@Composable
fun GreetingPreview() {
GreetingCardTheme {
Greeting("Student")
}
}
`