Puoi convalidare l'input mentre l'utente digita in un campo di testo, ad esempio inserendo un nome, un'email, un indirizzo o altri dati di contatto. Questa convalida riduce gli errori e fa risparmiare tempo agli utenti.
Compatibilità delle versioni
Questa implementazione richiede che il valore minSDK del progetto sia impostato sul livello API 21 o superiore.
Dipendenze
Convalida l'input mentre l'utente digita
Utilizza il seguente codice per visualizzare l'input del campo e convalidare il testo mentre l'utente digita. Se le informazioni non sono convalidate, un messaggio di errore aiuta l'utente a correggere l'input.
class EmailViewModel : ViewModel() { var email by mutableStateOf("") private set val emailHasErrors by derivedStateOf { if (email.isNotEmpty()) { // Email is considered erroneous until it completely matches EMAIL_ADDRESS. !android.util.Patterns.EMAIL_ADDRESS.matcher(email).matches() } else { false } } fun updateEmail(input: String) { email = input } } @Composable fun ValidatingInputTextField( email: String, updateState: (String) -> Unit, validatorHasErrors: Boolean ) { OutlinedTextField( modifier = Modifier .fillMaxWidth() .padding(10.dp), value = email, onValueChange = updateState, label = { Text("Email") }, isError = validatorHasErrors, supportingText = { if (validatorHasErrors) { Text("Incorrect email format.") } } ) } @Preview @Composable fun ValidateInput() { val emailViewModel: EmailViewModel = viewModel<EmailViewModel>() ValidatingInputTextField( email = emailViewModel.email, updateState = { input -> emailViewModel.updateEmail(input) }, validatorHasErrors = emailViewModel.emailHasErrors ) }
Punti chiave del codice
- Definisce un composable che riutilizza il componente
OutlinedTextField
, aggiungendo i parametri necessari per visualizzare i messaggi di errore del validatore come tipi di utente. EmailViewModel
viene utilizzato per mantenere lo stato e fornire la logica di convalida dell'email.- Se
isError
è true, l'interfaccia utente fornisce un indicatore visivo di uno stato di errore di convalida. - Il componente mostrerà il messaggio "Formato email errato" finché non viene inserita un'email completa e corretta.
Risultati
![Un input di testo valido](https://developer.android.google.cn/static/quick-guides/content/email_validation.png?hl=it)
![Un input di testo non valido con errori](https://developer.android.google.cn/static/quick-guides/content/invalid_email_format_example.png?hl=it)
Raccolte che contengono questa guida
Questa guida fa parte di queste raccolte di guide rapide selezionate che coprono obiettivi di sviluppo Android più ampi:
![](https://developer.android.google.cn/static/images/quick-guides/collection-illustration.png?hl=it)
Testo visualizzato
![](https://developer.android.google.cn/static/images/quick-guides/collection-illustration.png?hl=it)