Kotlin:拼接EditText文本后在Toast显示失败,求助解决方法
问题分析与解决
核心问题
你的代码在Activity初始化阶段就提前获取了EditText的文本值,此时用户还没输入任何内容,所以placa、placa2、placa3都是空字符串。点击按钮时显示的是初始化时生成的空值拼接结果,自然只显示"The plate is "。
修正代码
把获取输入文本和拼接字符串的逻辑移到按钮点击事件内部,这样每次点击时才会实时读取当前输入框的内容:
// 初始化控件 val button: Button = findViewById(R.id.consultar) val editTextPlaca: EditText = findViewById(R.id.placa) button.setOnClickListener { // 点击按钮时才实时获取输入文本 val placa = editTextPlaca.text.toString() val mensaje = "The plate is $placa" Toast.makeText(this, mensaje, Toast.LENGTH_SHORT).show() }
额外优化提示
- 不需要重复用三种方式获取文本,
editTextPlaca.text.toString()是Kotlin中最简洁的正确写法 - 使用Kotlin字符串模板
$placa替代+拼接,代码更简洁易读 - 可以添加空输入判断,提升用户体验:
button.setOnClickListener { val placa = editTextPlaca.text.toString().trim() val mensaje = if (placa.isEmpty()) { "请输入车牌号码" } else { "The plate is $placa" } Toast.makeText(this, mensaje, Toast.LENGTH_SHORT).show() }
内容的提问来源于stack exchange,提问作者Alex Güemez
相关产品推荐
相关产品推荐

