Android 当从第3个活动调用setResult时,将数据返回到第1个活动
我有三项活动。在第一个活动中,调用onClick方法时,方法中包含startActivityForResult,它将引导您进入活动2。然后,从活动2,您可以单击另一个按钮,进入活动3 在活动3中,我想调用setResult方法,然后,它将完成活动并将您带回活动1,其中包含活动3中的数据 但是,由于某些原因,数据为null,并且从不调用Activity.RESULT_OK 我该怎么办?谢谢 在活动一中:Android 当从第3个活动调用setResult时,将数据返回到第1个活动,android,onactivityresult,Android,Onactivityresult,我有三项活动。在第一个活动中,调用onClick方法时,方法中包含startActivityForResult,它将引导您进入活动2。然后,从活动2,您可以单击另一个按钮,进入活动3 在活动3中,我想调用setResult方法,然后,它将完成活动并将您带回活动1,其中包含活动3中的数据 但是,由于某些原因,数据为null,并且从不调用Activity.RESULT_OK 我该怎么办?谢谢 在活动一中: @Override public void onClick(View view) {
@Override
public void onClick(View view) {
IVID = view.getId();
Intent i = new Intent(this, PhotoSelectActivityMultiple.class);
startActivityForResult(i, 1);
}
在活动2中:
Intent returnIntent = new Intent(getApplicationContext(), CollageGrid.class);
returnIntent.putStringArrayListExtra("imageurls", mDownloadURL);
startActivity(returnIntent);
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
在活动3中:
Intent intent=new Intent();
intent.putExtra("part",byteArray);
setResult(1, intent);
finish();
活跃
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1) {
if(resultCode == Activity.RESULT_OK) {
updateThis = (ImageView) findViewById(IVID);
byte[] byteArray = data.getByteArrayExtra("part");
Bitmap current_bmp = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length);
updateThis.setImageBitmap(current_bmp);
}
if (resultCode == Activity.RESULT_CANCELED) {
}
}
}
我们不需要通过简单地调用StartActivity来启动活动3,而需要通过StartActivityForResult来调用活动3。因此,Activity3将在ActivityResult上将值返回给Activity2,您可以从中将值传递给Activity1 因此,您按以下顺序调用活动
activity1->activity2->activity3
,然后在activity3
中执行setResult()
,并期望activity1
在onActivityResult
中获得结果?是吗?@Bhargav是的,这就是我想要实现的。你知道setResult
是如何工作的吗?当您以特定顺序调用活动时,setResult
以与启动活动相反的顺序返回,因此您需要做的是在activity2
中生成onActivityResult()
,并在setResult()
中传递收到的结果(数据),但是,我想这是个坏主意,因为我传递的是相对较大的字节数组,这可能会使我的应用程序速度降低很多。我想不出任何其他方法,除非你将activity2和Activity3分解为片段并将其附加到activity1