我想揭示我通过 Intent 从活动传递到另一个活动并访问它的值,但它显示:
尝试在空对象引用上调用虚拟方法 'java.lang.String android.content.Intent.getStringExtra(java.lang.String('
所以在这里我做了什么...在登录活动中,我传递了用户名thourgh 意图:
val intent = Intent(this@LoginActivity,MainActivity::class.java)
intent.putExtra("username", "johnDoe")
startActivity(intent)
主要活动
class MainActivity : AppCompatActivity() {
val username = intent.getStringExtra("username")
private val firebaseHelper = FirebaseHelper(username)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
Toast.makeText(applicationContext, username.toString(), Toast.LENGTH_LONG).show()
}
override fun onStop() {
super.onStop()
firebaseHelper.deleteDriver()
}
}
例如:如果我使用val username = intent.getStringExtra("username")
它将起作用,但随后我会遇到firebaseHelper.deleteDriver()
问题。
我不知道我在哪里错过了它,但希望有解决方案,你可以做家伙
您应该在onCreate
方法中val username = intent.getStringExtra("username")
调用此代码。
initailize
val username = intent.getStringExtra("username")
内部创建((
当firebaseHelper.deleteDriver(( 执行时, 它将用户名获取为空。所以它正在抛出 NPE