kotilin:尝试在空对象引用上调用虚拟方法'java.lang.String android.content.Intent.getStringExtra(java.lang.String)'

时间:2019-09-13 14:36:12

标签: android

我想将通过意图从活动传递给另一个活动的价值传递出来并访问它,但它显示:

  

试图在空对象引用上调用虚拟方法'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()的问题。

我不知道我错过了什么,但是希望有解决方案,可以让你们成为

2 个答案:

答案 0 :(得分:0)

您应该在val username = intent.getStringExtra("username")方法中调用此代码onCreate

答案 1 :(得分:0)

详细

val username = intent.getStringExtra("username")

oncreate ()

内部

在执行FirebaseHelper.deleteDriver()的 onstop 中, 它获得的用户名为空。因此它会抛出NPE