【问题标题】:Android Intent : Always get resultCode = 0Android 意图:总是得到 resultCode = 0
【发布时间】: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


【解决方案1】:

结果代码 0 表示RESULT_CANCELED。如果您正在启动的 Activity 被启动到不同的任务中,或者如果用户按下 BACK 键,或者如果启动的 Activity 决定返回 RESULT_CANCELED,则可能会发生这种情况。

【讨论】:

    猜你喜欢
    • 2010-12-27
    • 1970-01-01
    • 2011-07-14
    • 2020-11-23
    • 2019-05-02
    • 1970-01-01
    • 1970-01-01
    • 2014-05-17
    • 2018-12-23
    相关资源
    最近更新 更多