我正在使用 Compose 开发 Android 应用程序,我有一个用户填写的表单,并将其添加到列表中,如果用户再次点击列表中的项目,我需要再次显示填写了数据的表单。
以下是我的代码:
var name by remember { mutableStateOf(inventoryItem.name ?: "") }
OutlinedTextField(
value = name,
onValueChange = { name = it },
label = { Text("Item") },
modifier = Modifier.fillMaxWidth()
)
但是它没有设置变量的值,而是显示空值。如果我在 mubaleStateOf 中对名称进行硬编码,它就可以工作。 mutableStateOf 不接受变量的默认值。
我希望用项目信息填充文本字段,请建议我可以做什么来用变量中的数据填充文本字段,因为列表中的每个项目都会有不同的数据。
尝试在记住部分添加初始化程序:
var name by remember(inventoryItem.name ?: "") { mutableStateOf(inventoryItem.name ?: "") }