android - Android onActivityResult() 总是返回 null
问题描述
我正在尝试将子活动的结果返回给父活动。这是我在父活动中的代码
private val REQUEST_CODE = 1
override fun onCreate(savedInstanceState: Bundle?) {
startActivityForResult(Intent(this,DescriptionActivity::class.java).apply{
putExtra("EXTRA_FOOD_NAME", foodName)
putExtra("EXTRA_IMAGE", image)
putExtra("EXTRA_FOOD_DESC", foodDesc)
},REQUEST_CODE)
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if(requestCode == REQUEST_CODE &&
resultCode == Activity.RESULT_OK){
//It is null when I check it inside here
val orderedFood = intent.getStringExtra("EXTRA_ORDER")
current_oreder.add(orderedFood)
}
}
儿童活动
override fun onCreate(savedInstanceState: Bundle?) {
val foodName = intent.getStringExtra("EXTRA_FOOD_NAME")
btnAddToOrder.setOnClickListener{addToOrder(foodName)}
}
private fun addToOrder(foodName:String?)
{
val orderIntent: Intent = Intent().apply {
putExtra("EXTRA_ORDER", foodName)
}
setResult(Activity.RESULT_OK, orderIntent)
finish()
}
我检查了子活动的 foodName 变量是否具有空值但它具有正确的值。当我将它返回给父活动时,它会变为 null。我尝试了在互联网上找到的解决方案,但没有奏效。任何人都可以解决这个问题吗?
解决方案
在onActivityResult方法中使用:</p>
data?.getStringExtra("EXTRA_ORDER")
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if(requestCode == REQUEST_CODE &&
resultCode == Activity.RESULT_OK){
//It is null when I check it inside here
val orderedFood = data?.getStringExtra("EXTRA_ORDER")
current_oreder.add(orderedFood)
}
}
推荐阅读
- oracle - 我想用其他表数据中的数据更新表 emp_appointment
- javascript - 我需要帮助制作响应式菜单
- java - Java如何发送特殊字符是post
- sql - 具有多重表的条件
- css - 我希望特定高度的 div 可以根据需要增加宽度以容纳文本
- snowflake-cloud-data-platform - 雪花更改列以具有默认值
- maven - “mvn verify”与“mvn test”有什么区别?
- reactjs - 使用 shopify 验证外部 create-react-app 自定义应用程序
- javascript - 在 Angular 中使用真实路径:找不到模块
- javascript - 在不打开窗口的情况下加载页面