我想将通过意图从活动传递给另一个活动的价值传递出来并访问它,但它显示:
试图在空对象引用上调用虚拟方法'java.lang.String android.content.Intent.getStringExtra(java.lang.String)'
这就是我在登录活动中所做的...我通过了用户名 thourgh Intent:
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()
的问题。
我不知道我错过了什么,但是希望有解决方案,可以让你们成为
答案 0 :(得分:0)
您应该在val username = intent.getStringExtra("username")
方法中调用此代码onCreate
。
答案 1 :(得分:0)
详细
val username = intent.getStringExtra("username")
在 oncreate ()
内部在执行FirebaseHelper.deleteDriver()的 onstop 中, 它获得的用户名为空。因此它会抛出NPE