我知道有几个问题,但我找不到解决问题的方法。
我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}}。
答案 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。