Kotlin中Intent传值失败:如何修复BookInsert获取UserInd为null的问题
问题修复方案
核心问题
你在MainActivity登录成功后,把UserInd通过Intent传给了LoginActivity,但你是在BookInsert.kt里尝试获取这个值——这俩Activity根本不在同一条跳转链路上,所以BookInsert拿不到数据是必然的。
修复方式分两种情况:
情况1:登录成功后直接跳转到BookInsertActivity
如果你的业务逻辑是登录完直接进入BookInsert,那直接修改MainActivity里的Intent目标Activity:
// 原代码:跳转到LoginActivity // val intent = Intent(this@MainActivity,LoginActivity::class.java) // 修改为:跳转到BookInsertActivity val intent = Intent(this@MainActivity, BookInsert::class.java) intent.putExtra("UserInd", userInd) Log.d("MainActivity", "UserInd: $userInd") startActivity(intent) finish()
这样BookInsert里的代码就能正常拿到UserInd了。
情况2:登录成功后先进入LoginActivity,再从LoginActivity跳转到BookInsertActivity
如果必须经过LoginActivity中转,那需要在LoginActivity里把接收到的UserInd再传递给BookInsert:
- 先在LoginActivity里获取到
UserInd:
val userInd = intent.getStringExtra("UserInd")
- 当从LoginActivity跳转到BookInsert时,把这个值再放进去:
val intent = Intent(this, BookInsert::class.java) intent.putExtra("UserInd", userInd) startActivity(intent)
这样BookInsert里的代码就能拿到正确的值了。
内容的提问来源于stack exchange,提问作者alive
相关产品推荐
相关产品推荐

