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
相关产品推荐
相关产品推荐

