0
我有3个活动。在第一个活动中,onClick方法在内部调用startActivityForResult将其引导至活动2.然后从活动2开始,您可以单击另一个按钮,将其引导至活动3.当从第3活动调用setResult时将数据返回到第1活动
在活动3中,我想调用setResult方法,之后,它将完成Activity并使您回到Activity 1,其中包含来自Activity 3的数据。
但是,由于某些原因,数据为空,且Activity.RESULT_OK永远不会被调用。
我该如何处理?谢谢。
在活动之一:
@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();
在onActivity
@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) {
}
}
}
所以你按照这个顺序调用活动activity1-> activity2-> activity3'然后你在'activity3'中设置'setResult()',并期望'activity1'获得'onActivityResult'的结果?是对的吗? – Bhargav
@Bhargav是的,这是我想达到的。 – Jack
你了解'setResult'的工作原理吗?当你按照一定的顺序调用活动时,'setResult'按照相反的顺序返回,所以你需要做的是在'activity2'中调用'onActivityResult()',并将你的接收结果(数据)传递给'setResult()' – Bhargav