1

我有 3 个窗口(活动)。window1 按钮带有旧图片,window2 选项改变window1 的旧图片,window3 预览图片。

在window3中进行选择时,我想跳过window2 + window3并跳回window1。我们怎么能做到这一点?

在此处输入图像描述

窗口1:

Intent MyRotationsAddPicture2 = new Intent(getBaseContext(), MyRotationsAddPicture.class);
MyRotationsAddPicture2.putExtra("Title", "r2.jpg");
startActivityForResult(MyRotationsAddPicture2,0);

窗口 2 / 窗口 3 ?

String whichImage =  getIntent().getExtras().getString("Title"); 

protected void onActivityResult(int requestCode, int resultCode, Intent data) {  
    if (resultCode == 0) {
      finish();
      startActivity(getIntent());

    }
}

setResult(0);
this.finish();
System.exit(0);
4

2 回答 2

0

您可以使用标志 FLAG_ACTIVITY_FORWARD_RESULT,在 Window1 中保留您相同的代码。
在 Window2 中,启动 Window3

Intent i = new Intent(this, Window3.class);
    i.setFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT);
    startActivity(i);
    finish();

在 Window3 中只设置结果但不调用System.exit(0). 您将在 Window1 中获得结果onActivityResult

于 2013-07-31T18:20:56.367 回答
0

从看起来你想要的是你不想在startActivityForResult()这里使用......只需使用startActivity().

Activity3使用中

Intent intent = new Intent(Activity3.this, Activity1.class);
intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(intent);

如果您不想Activity2从堆栈中删除,请使用它。

如果您确实想Activity2从堆栈中删除,只需使用标志

intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT|Intent.FLAG_ACTIVITY_CLEAR_TOP);

finish()Activity2搬家时打电话Activity3

您可以在 Docs中找到所有的HereIntent Flags

于 2013-07-31T18:05:00.850 回答