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

Android Kotlin开发:如何通过Intent或Bundle在两个Activity间传递EditText的值?代码实现后值未显示

解决Activity间EditText值传递不显示的问题

嘿,我发现你的问题啦!你已经在MainActivity里把EditText的值通过Intent传递出去了,但在SecondActivity中只是获取了值,却没有把这些值设置到对应的EditText控件上,这就是为什么看不到内容的原因。

修正步骤

  • 第一步:在SecondActivity的onCreate方法中,先找到布局里用来显示内容的EditText控件(注意替换成你自己布局文件里的真实id)
  • 第二步:把从Intent中拿到的email和pass值,设置到这些EditText上
  • 额外提醒:getStringExtra可能返回null,最好做个空安全处理,避免空指针异常

修正后的SecondActivity代码

class SecondActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_second)
        
        // 1. 找到SecondActivity布局中的目标EditText控件
        val showEmailEt = findViewById<EditText>(R.id.et_show_email) // 替换成你实际的id
        val showPassEt = findViewById<EditText>(R.id.et_show_pass)   // 替换成你实际的id
        
        // 2. 获取Intent传递的值,用空安全操作符处理null情况
        val email = intent.getStringExtra("email") ?: ""
        val pass = intent.getStringExtra("pass") ?: ""
        
        // 3. 将值设置到EditText上
        showEmailEt.setText(email)
        showPassEt.setText(pass)
    }
}

小优化建议

为了避免拼写错误,建议把传递数据的键名定义成常量,比如在两个Activity中共享:

// 可以放在单独的常量文件或者其中一个Activity里
const val KEY_EMAIL = "email"
const val KEY_PASSWORD = "pass"

之后在MainActivity中用intent.putExtra(KEY_EMAIL, email),SecondActivity中用intent.getStringExtra(KEY_EMAIL),代码会更规范。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 16:17:30