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