You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Kotlin中点击按钮EditText文本不更新问题求助

问题分析与修复方案

核心问题

你的代码里username.text返回的是Editable类型,不是String对象。直接用equals("amar")比较的是两个不同类型的对象,所以即便输入框里确实是"amar",这个判断条件也永远不会成立。

修复代码

修改点击事件里的内容,把Editable转成String再做判断:

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        val username = findViewById<EditText>(R.id.usernameText)
        val password = findViewById<EditText>(R.id.passwordText)
        val btn_Submit = findViewById<Button>(R.id.loginButton)

        btn_Submit.setOnClickListener {
            // 关键:调用toString()把Editable转成String
            val user = username.text.toString()
            val pass = password.text.toString()
            Toast.makeText(this@MainActivity, user, Toast.LENGTH_LONG).show()
            // Kotlin用==直接比较字符串内容,更简洁
            if(user == "amar")
            {
                username.setText("hello")
            }
        }
    }
}

额外说明

  1. Kotlin里优先用val替代var(除非变量需要重新赋值),更符合语言规范
  2. EditText.text.toString()是获取输入框文本的标准方式,能彻底避免类型不匹配的问题
  3. Kotlin的==会自动调用字符串的equals()方法,比手动调用equals()更直观

内容的提问来源于stack exchange,提问作者Risen Star

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 21:45:30