Title: Error on Registration Page in Kotlin: “Unresolved reference: TextInputEditText”
Body:
I’m developing a registration page for my Android app using Kotlin, but I’m running into an issue. My layout file includes TextInputEditText fields for user input. However, when I try to reference these fields in my Activity class, I get an error.
Anja Šehovac is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
@Composable
fun RegistrationScreen(context: Context){
var name by remember { mutableStateOf("") }
var surname by remember { mutableStateOf("") }
var email by remember { mutableStateOf("") }
var password by remember { mutableStateOf("") }
var passwordRepeat by remember { mutableStateOf("") }
var showPassword by remember { mutableStateOf(false) }
var checkPassword by remember { mutableStateOf(true) }
var checkEmail by remember { mutableStateOf(false) }
Column(
modifier = Modifier
.fillMaxSize()
.wrapContentWidth()
.padding(vertical = 50.dp)
.verticalScroll(
rememberScrollState()
),
verticalArrangement = Arrangement.Center,
horizontalAlignment = Alignment.CenterHorizontally
) {
Image(
painter = painterResource(id = R.drawable.launch_icon),
contentDescription = "",
modifier = Modifier.size(width = 100.dp, height = 100.dp)
)
Spacer(modifier = Modifier.size(width = 0.dp, height = 20.dp))
Text(
text = stringResource(id = R.string.app_name),
fontSize = 30.sp,
fontFamily = FontFamily.Cursive,
color = Color.Blue
)
Spacer(modifier = Modifier.size(width = 0.dp, height = 20.dp))
TextField(
value = name,
onValueChange = { name = it },
enabled = true,
label = {
Text(text = "name")
},
placeholder = {
Text(text = "name")
},
isError = false,
keyboardOptions = KeyboardOptions.Default.copy(
keyboardType = KeyboardType.Text,
imeAction = ImeAction.Next)
)
Spacer(modifier = Modifier.size(width = 0.dp, height = 20.dp))
TextField(
value = surname,
onValueChange = { surname = it },
enabled = true,
label = {
Text(text = "surname")
},
placeholder = {
Text(text = "surname")
},
isError = false,
keyboardOptions = KeyboardOptions.Default.copy(
keyboardType = KeyboardType.Text,
imeAction = ImeAction.Next)
)
Spacer(modifier = Modifier.size(width = 0.dp, height = 20.dp))
TextField(
value = email,
onValueChange = { email = it },
enabled = true,
label = {
Text(text = "email")
},
placeholder = {
Text(text = "[email protected]")
},
isError = checkEmail,
keyboardOptions = KeyboardOptions.Default.copy(
keyboardType = KeyboardType.Email,
imeAction = ImeAction.Next)
)
Spacer(modifier = Modifier.size(width = 0.dp, height = 20.dp))
TextField(
value = password,
onValueChange = { password = it},
label = {
Text(text = "password")
},
visualTransformation = if(showPassword){
VisualTransformation.None
}
else{
PasswordVisualTransformation()
},
isError = !checkPassword,
trailingIcon = { Icon(
painter = if(showPassword){
painterResource(id = R.drawable.baseline_visibility_24)
}
else{
painterResource(id = R.drawable.baseline_visibility_off_24)
},
contentDescription = "",
modifier = Modifier.clickable(onClick = {showPassword = !showPassword }))
},
keyboardOptions = KeyboardOptions.Default.copy(
keyboardType = KeyboardType.Password,
imeAction = ImeAction.Next)
)
Spacer(modifier = Modifier.size(width = 0.dp, height = 20.dp))
TextField(
value = passwordRepeat,
onValueChange = { passwordRepeat = it},
label = {
Text(text = "repeat password")
},
visualTransformation = PasswordVisualTransformation(),
isError = !checkPassword,
keyboardOptions = KeyboardOptions.Default.copy(
keyboardType = KeyboardType.Password,
imeAction = ImeAction.Done)
)
Spacer(modifier = Modifier.size(width = 0.dp, height = 5.dp))
TextButton(
onClick = {
sendNotification("this is title of notification", "body of notification", 1, context)
},
modifier = Modifier.align(Alignment.End)
) {
Text(text = "Have an account?")
}
Spacer(modifier = Modifier.size(width = 0.dp, height = 20.dp))
Button(onClick = {
checkPassword = password == passwordRepeat;
checkEmail = !checkEmail(email)
}) {
Text(
text = "Registration",
fontSize = 20.sp,
fontWeight = FontWeight.Light,
modifier = Modifier.padding(horizontal = 20.dp, vertical = 0.dp)
)
}
}
}
fun checkEmail(email: String): Boolean{
return EMAIL_ADDRESS.matcher(email).matches()
}
@Preview(showBackground = true)
@Composable
fun RegistrationScreenPreview(){
//RegistrationScreen()
}
Hope this helps 🙂
Anja Šehovac is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.