您可以在用户在文本字段中输入内容时(例如,输入姓名、电子邮件、地址或其他联系信息)验证输入。此验证可减少错误并节省用户时间。
版本兼容性
此实现要求您的项目 minSDK 设置为 API 级别 21 或更高。
依赖项
用户输入时进行验证
使用以下代码显示字段输入并在用户输入时验证文本。如果信息未通过验证,则错误消息将帮助用户更正输入。
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 ) }
有关代码的关键点
- 定义一个可组合项,该项重用
OutlinedTextField
组件,并添加显示验证器错误消息(用户输入时)所需的参数。 EmailViewModel
用于维护状态并提供电子邮件验证逻辑。- 如果
isError
为 true,则 UI 会提供验证错误状态的可视指示符。 - 在输入完整正确的电子邮件之前,该组件将显示“电子邮件格式不正确”。
结果
包含此指南的收藏集
本指南包含在以下精选的快速指南收藏集中,涵盖更广泛的 Android 开发目标
显示文本
文本是任何 UI 的核心部分。了解如何在应用中以各种方式呈现文本,以提供愉悦的用户体验。
请求用户输入
了解如何实现用户通过输入文本和其他输入方式与您的应用交互的方法。
有疑问或反馈
访问我们的常见问题页面,了解快速指南,或与我们联系,分享您的想法。