return 单击按钮后来自可组合函数的值
return a value from composable function after button click
我在一个组合函数中有一些代码,return是一个“PscEntity”,它接受(如您所见)一个代码(String 类型)和金钱(Double 类型),我'我已经尝试使函数 return 成为 PscEntity 的新实例(因为此函数将用于更新那些实体的实例)但由于以下原因它不起作用: 并添加“@Button”不让我 return "PscEntity"
Row() {
Button(onClick = {
return PscEntity(code = newCode.value, money = newMoney.value)
})
{
Text("Apply changes")
}
Button(onClick = {
return PscEntity(code = code, money = money)
})
{
Text("Disregard changes")
}
我想添加一个会被更改的变量,然后用 if 语句检查值,但这似乎不是解决问题的好方法,
任何帮助将不胜感激
谢谢:)
编辑:
此函数是从“.callable { }”调用的
Card(
modifier = Modifier
.fillMaxWidth()
.shadow(40.dp)
.clickable {
showAlertDialog("11111", 12.32)
}
)
@Composable
fun showAlertDialog(code: String, money: Double): PscEntity {
var newCode by remember { mutableStateOf(code) }
var newMoney by remember { mutableStateOf(money) }
Box(contentAlignment = Alignment.Center) {
Column() {
TextField(value = newCode, onValueChange = {
newCode = it
})
TextField(value = newMoney.toString(), onValueChange = {
newMoney = it.toDouble()
})
Row()
{
Button(onClick = {
return PscEntity(code = newCode, money = newMoney)
})
{
Text("Apply changes")
}
Button(onClick = {
return PscEntity(code = code, money = money)
})
{
Text("Disregard changes")
}
}
}
}
}
您的代码不正确。
Compose 函数不会 return 结果。
您应该为此使用 lambda。
请检查样品
codeLab
我在一个组合函数中有一些代码,return是一个“PscEntity”,它接受(如您所见)一个代码(String 类型)和金钱(Double 类型),我'我已经尝试使函数 return 成为 PscEntity 的新实例(因为此函数将用于更新那些实体的实例)但由于以下原因它不起作用:
Row() {
Button(onClick = {
return PscEntity(code = newCode.value, money = newMoney.value)
})
{
Text("Apply changes")
}
Button(onClick = {
return PscEntity(code = code, money = money)
})
{
Text("Disregard changes")
}
我想添加一个会被更改的变量,然后用 if 语句检查值,但这似乎不是解决问题的好方法,
任何帮助将不胜感激
谢谢:)
编辑:
此函数是从“.callable { }”调用的
Card(
modifier = Modifier
.fillMaxWidth()
.shadow(40.dp)
.clickable {
showAlertDialog("11111", 12.32)
}
)
@Composable
fun showAlertDialog(code: String, money: Double): PscEntity {
var newCode by remember { mutableStateOf(code) }
var newMoney by remember { mutableStateOf(money) }
Box(contentAlignment = Alignment.Center) {
Column() {
TextField(value = newCode, onValueChange = {
newCode = it
})
TextField(value = newMoney.toString(), onValueChange = {
newMoney = it.toDouble()
})
Row()
{
Button(onClick = {
return PscEntity(code = newCode, money = newMoney)
})
{
Text("Apply changes")
}
Button(onClick = {
return PscEntity(code = code, money = money)
})
{
Text("Disregard changes")
}
}
}
}
}
您的代码不正确。 Compose 函数不会 return 结果。 您应该为此使用 lambda。 请检查样品 codeLab