Praveen Kumar
07/13/2023, 9:48 AMStylianos Gakis
07/13/2023, 9:53 AMPraveen Kumar
07/13/2023, 10:16 AMStylianos Gakis
07/13/2023, 10:17 AMclickable {
rememberCoroutineScope().launch { ... your stuff here }
}
Stylianos Gakis
07/13/2023, 10:18 AMval coroutineScope = rememberCoroutineScope()
Button(
onClick {
coroutineScope.launch { ... }
}
)
Praveen Kumar
07/13/2023, 10:19 AMStylianos Gakis
07/13/2023, 10:19 AMPraveen Kumar
07/13/2023, 10:19 AM@Composable
fun LoginScreen(navController: NavController){
val context = LocalContext.current
var username = remember {
mutableStateOf("")
}
var password = remember {
mutableStateOf("")
}
var isClicked = remember {
mutableStateOf(false)
}
Column(modifier = Modifier.fillMaxSize(), verticalArrangement = Arrangement.Center, horizontalAlignment = Alignment.CenterHorizontally) {
Text(
modifier = Modifier.padding(10.dp),
text = "Welcome to Login",
color = Color.Black
)
Spacer(modifier = Modifier.height(10.dp))
OutlinedTextField(
value = username.value,
onValueChange = { username.value = it},
label = { Text("UserName") }
)
Spacer(modifier = Modifier.height(16.dp))
OutlinedTextField(
value = password.value,
onValueChange = { password.value = it},
label = { Text("PassWord")}
)
Spacer(modifier = Modifier.height(16.dp))
Button(
onClick = { isClicked = true }) {
Text("Login")
}
if (isClicked){
if (username.value.isNotEmpty()){
Toast.makeText(context, "Please Enter Username", Toast.LENGTH_SHORT).show()
}else if (password.value.isNotEmpty()){
Toast.makeText(context, "Please Enter Password", Toast.LENGTH_SHORT).show()
}else{
login()
}
}
}
}
@Composable
fun login() {
val context = LocalContext.current
val scope = rememberCoroutineScope()
var loginCred by remember {
mutableStateOf(emptyList<LoginDataItem>())
}
val navController = rememberNavController()
LaunchedEffect(key1 = true ){
scope.runCatching {
LoginUrl().execute("admin","Aurolab")
}.onSuccess{ loginCred ->
navController.navigate("HomeScreen")
Toast.makeText(context, "Login Successfully", Toast.LENGTH_SHORT).show()
}.onFailure {
Toast.makeText(context, "Error: ${it.message}", Toast.LENGTH_SHORT).show()
}
}
}
this is my code.Stylianos Gakis
07/13/2023, 10:20 AMPraveen Kumar
07/13/2023, 10:21 AMPraveen Kumar
07/13/2023, 10:22 AMPraveen Kumar
07/13/2023, 10:22 AMButton(
onClick = { isClicked = true }) {
Text("Login")
}
if (isClicked){
if (username.value.isNotEmpty()){
Toast.makeText(context, "Please Enter Username", Toast.LENGTH_SHORT).show()
}else if (password.value.isNotEmpty()){
Toast.makeText(context, "Please Enter Password", Toast.LENGTH_SHORT).show()
}else{
login()
}
}
Praveen Kumar
07/13/2023, 10:25 AMStylianos Gakis
07/13/2023, 10:26 AMStylianos Gakis
07/13/2023, 10:26 AMisClicked
doesn’t mean that will only run onceStylianos Gakis
07/13/2023, 10:27 AMvar isClicked = remember {
mutableStateOf(false)
}
But you should do
var isClicked by remember {
mutableStateOf(false)
}
if you want to be able to access it through isClicked = true
instead of having to do isClicked.value = true
Praveen Kumar
07/13/2023, 11:13 AMPraveen Kumar
07/13/2023, 11:13 AMStylianos Gakis
07/13/2023, 11:14 AMPraveen Kumar
07/13/2023, 1:58 PMStylianos Gakis
07/13/2023, 2:00 PM