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") } } } }
额外说明
- Kotlin里优先用
val替代var(除非变量需要重新赋值),更符合语言规范 EditText.text.toString()是获取输入框文本的标准方式,能彻底避免类型不匹配的问题- Kotlin的
==会自动调用字符串的equals()方法,比手动调用equals()更直观
内容的提问来源于stack exchange,提问作者Risen Star
相关产品推荐
相关产品推荐

