所以我有一个疑问,我有3个活动,第一个活动是向第二个活动发送一些数据,第二个是向第三个活动发送一些数据并完成第二个,是否有办法完成第三个活动并将一些数据发送到第三个活动?将第三个活动的值传递给第一个活动
这就是我在第一次活动中所做的。
mStartGame.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent i = new Intent(view.getContext(), GameInProgress.class);
i.putExtra("questionObject", questions);
startActivityForResult(i,DETAIL_REQUEST);
}
});
而在第二个后,我得到额外的我这样做是为了将数据发送到第三个活动:在第三
Intent i = new Intent(view.getContext(), StatisticsActivity.class);
i.putExtra("questionObject", questionInfo);
startActivity(i);
finish();
现在,我得到了群众演员,然后我:
Intent returnIntent = new Intent();
isCorrect = true;
returnIntent.putExtra("questionCorrection", isCorrect);
setResult(RESULT_OK, returnIntent);
finish();
我虽然这会工作,因为当我完成第三个活动onActivityResult在第一个活动方法正在工作,但是当我尝试访问额外我得到一个nullpointerexception,所以我不知道,谢谢。
也许从onActivityResult返回不会像你怀疑的那样返回这个Intent(我打赌你返回的Intent设置不正确,或者像你期望的那样返回)。使用全局存储机制来使这个更简单(像SharedPrefs)。 – Booger 2014-09-06 13:52:56
正如我在下面回答的,如果我使用SharedPrefs,我将如何知道何时返回到第一个活动? – 2014-09-06 13:54:43
在第一个活动的onCreate方法中,您将从SharedPrefs获取值(并且您将知道您处于第一个活动中,因为您在活动中)。基本上,将知道,因为你的应用上下文已切换回第一个活动。 – Booger 2014-09-06 13:58:04