Android - 我如何从window1转到window2然后从窗口3转到窗口跳回窗口1?

时间:2013-07-31 18:02:24

标签: java android android-layout android-intent

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

当在window3中进行选择时,我想跳过相当的window2 + window3并跳回window1。我们怎么能这样做?

enter image description here

窗口1:

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

Window2 / Window3?

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);

2 个答案:

答案 0 :(得分:1)

从您想要的内容来看,您不想在此使用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

您可以找到所有Intent Flags Here in the Docs

答案 1 :(得分:1)

您可以使用标志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中获得结果。