您可以在使用者於文字欄位中輸入內容時驗證輸入內容,例如輸入姓名、電子郵件地址、地址或其他聯絡資訊。這項驗證可減少錯誤,並節省使用者時間。
結果
版本相容性
這項實作作業需要將專案 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 的核心元素。瞭解在應用程式中呈現文字的不同方式,提供令人愉悅的使用者體驗。
要求使用者輸入內容
瞭解如何實作使用者與應用程式互動的方式,包括輸入文字及使用其他輸入方式。
如有問題或想提供意見
前往常見問題頁面,瞭解快速指南或與我們聯絡,分享您的想法。