Kotlin中如何获取输入框值并设置到mimeMessage.setText()
解决方案
问题出在你直接调用了占位符的资源字符串,而非绑定到TextField的用户输入状态值。按以下步骤修改即可解决:
1. 确保TextField正确绑定输入状态
先确认你的TextField已经和可观察状态对象绑定,完整的TextField配置应包含状态的读写逻辑:
// 在Composable函数内定义输入状态 var textState by remember { mutableStateOf("") } TextField( value = textState, onValueChange = { textState = it }, // 关键:实时更新用户输入的内容 keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Password), decorationBox = { innerTextField -> if (textState.isEmpty()) { body_grey50( stringResource(R.string.Item_DetailHint), overflow = TextOverflow.Ellipsis, ) } innerTextField() }, )
2. 获取用户实际输入并设置到邮件
当需要发送邮件时,直接读取状态中的用户输入内容,替换你原来的错误代码:
// 读取用户输入的商品详情 val userItemDetail = textState.text mimeMessage.setText(userItemDetail)
可选优化:增加空内容判断
可以加入简单的校验,避免发送空内容:
val userInput = textState.text.trim() if (userInput.isNotEmpty()) { mimeMessage.setText(userInput) } else { // 这里可以添加提示,告知用户需要输入商品详情 }
内容的提问来源于stack exchange,提问作者JohnDTA
相关产品推荐
相关产品推荐

