-1

我有一些代码在 compose 函数中,它返回一个“PscEntity”,它需要(你可以注意到)一个代码(字符串类型)和钱(双类型),我试图让函数返回一个新的PscEntity 的实例(因为此函数将用于更新这些实体的实例)但由于以下原因它不起作用:在此处输入图像描述并且添加“@Button”不允许我返回“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")
                }
            }
        }
    }
}
4

1 回答 1

1

您的代码不正确。Compose 函数不返回结果。您应该为此使用 lambda。请在 codeLab上查看示例

于 2022-01-09T21:28:26.710 回答