Android中putExtra传值后getStringExtra返回null的问题
问题解决:putExtra传递数据后getStringExtra返回null
问题原因
MainActivity中错误创建了空的新Intent,而非获取启动当前Activity时携带数据的那个Intent,导致getStringExtra()返回null。
修正后的MainActivity代码
替换原Intent初始化代码,改用getIntent()获取系统传递的Intent:
val intent = getIntent() val word = intent.getStringExtra("Word") Log.d(TAG, "MainActivity: $word") word?.let { viewModel.insert(Word(word)) Log.d(TAG, "onCreate: Inserted $word") }
若使用AndroidX的Activity,也可直接利用onCreate方法的Intent参数:
override fun onCreate(savedInstanceState: Bundle?, intent: Intent?) { super.onCreate(savedInstanceState) val word = intent?.getStringExtra("Word") Log.d(TAG, "MainActivity: $word") word?.let { viewModel.insert(Word(word)) Log.d(TAG, "onCreate: Inserted $word") } }
说明
你的SecondActivity代码逻辑正确,已成功创建指向MainActivity的Intent并附加EditText文本数据。但原MainActivity中val intent = Intent()会生成全新的空Intent,自然无法读取传递的数据。必须通过getIntent()或onCreate的Intent参数,才能拿到启动当前Activity时携带的目标Intent对象。
内容的提问来源于stack exchange,提问作者Divyansh Singh
相关产品推荐
相关产品推荐

