【发布时间】:2020-06-08 03:44:07
【问题描述】:
我试图在 2 个活动之间获得意图的结果,但出现了问题,因为我在初始活动中总是得到 resultCode = 0:
CarsFragment.kt 中的代码
private fun startAddCarActivity() {
val intent = Intent(context, AddCarActivity::class.java)
startActivityForResult(intent, 1)
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
// ALWAYS GET requestCode = 1, resultCode = 0 and data = null !!
}
AddCarActivity.kt:
private fun startCarsNavigationActivity() {
intent.putExtra("car", car)
setResult(1, intent)
finish()
}
问题:
我总是在 CarsFragment.kt 中得到 requestCode = 1、resultCode = 0 和 data = null
问题出在哪里?
【问题讨论】:
-
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { if(requestCode == 1 && resultCode == RESULT_OK){ //get your data here and use it }} -
在 AddCarActivity 上将 setResult(1, intent) 替换为 setResult(Activity.RESULT_OK,intent) 并在 carFragment 的 onActivityResult 上检查 resultCode == Activity.RESULT_OK。
-
@Shijil 总是一样的:requestCode = 1, resultCode = 0 and data = null
-
AddCarActivity 清单中的
launchMode是什么?也许它是从不同的任务开始的,我相信在不同任务之间返回结果存在一个已知问题。 -
发布您的清单。
标签: android android-fragments kotlin android-intent