FragmentActivity onActivityResult数据为null

时间:2016-06-07 19:23:23

标签: android android-activity onactivityresult

我知道有几个问题,但我找不到解决问题的方法。

ActivityA扩展了AppCompatActivity。它开始ActivityB

活动A

Intent intent = new Intent(this, ActivityB.class);
intent.putExtra("data", data);
startActivityForResult(intent, 1); 

....

@Override
 protected void onActivityResult(int requestCode, int result, Intent intent) {
    super.onActivityResult(requestCode, result, intent);
    if (requestCode != 1) { // check code
        return;
    }

    if (intent == null) { // HERE INTENT IS NULL 

       return;
    }
}

活动B

// code called when an asynctask is done
Intent i = new Intent();
i.putExtra("dataone", "test");
i.putExtra("datatwo", objet);
setResult(RESULT_OK, i);
finish();

我不明白为什么intent null onActivityResult()方法{/ 1}}。

1 个答案:

答案 0 :(得分:0)

两件事。我会重构您的代码,如下所示:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
if (requestCode == 1) {
    if (resultCode == RESULT_OK) {
      // example
      // String myString = intent.getString("myStringFrom2ndActivity")

        }
    }
}

并确保您正在调用正确的RESULT_OK。它应该像Activity.RESULT_OK。