当我尝试通过结果返回到一个Activity时,遇到了一个奇怪的问题。我从适配器传递了一个Intent给startActivityForResult
方法,如下所示:
Intent i = new Intent(activity, EditInfoActivity.class);
i.putExtra("id", list.get(position).getID());
activity.startActivityForResult(i, 100);
在第二个Activity中,也就是我这里的EditInfoActivity中,当用户点击一个时,我会像这样为第一个Activity设置结果:
Intent i = getIntent();
i.putExtra("isDataChange", isDataChange);
setResult(100, i);
finish();
在Activity的
onActivityResult
方法中,我能够获得结果代码,但是获取到的Intent
为null
。为什么?有人对此有任何想法请分享。
在Activity中:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 100) {
//Here data is null and app crash
if (data.getExtras() != null && data.getBooleanExtra("isDataChange", false)) {
recreate();
}
}
}