我在TabGroupActivity
中有3个不同的活动。我们说A - Parent, B - Child 1, C - Child 2
。
A ---开始 - >乙 B ---开始 - > ç
我在C中有一个警告对话框,显示一些消息。当我按下对话框上的确定按钮时,我想回到活动A.
但问题是我可以从其他活动中打开活动C,我也想回到他们的父活动。因此,无论哪个活动开放C
,我都需要制作一些可行的内容。我试过这个,但没有用:
Intent intent = new Intent(Synchronization.this,Synchronization.this.getParent().getClass());
但它对我没有帮助。有什么建议吗?
答案 0 :(得分:4)
您只需使用两种Activity
方法即可。 startActivityForResult()
和onActivityResult()
示例:http://www.vogella.de/articles/AndroidIntent/article.html#explicitintents
这就是逻辑:
在ActivityB中
使用startActivityForResult(activityCIntent,INT_CODE)启动ActivityC;
在ActivityC中
现在检查是否按了Dialog
确定Button
,如果是,则使用setResult(RESULT_OK,intent);
设置结果,然后拨打finish();
然后控件将被重定向到ActivityB的onActivityResult()
方法。
现在在onActivityMethod()里面检查result_code==RESULT_OK
和requestCode = INT_CODE
。如果是,则只需致电finish();
答案 1 :(得分:0)
在活动B中,将C活动作为startActivityForResult()
启动,因此当您完成C活动时,它将返回B结果。因此,您可以使用intent对象传递标记。
现在当你用ok按钮完成C活动然后将结果设置为RESULT_OK到setResult()中如果需要将数据传递回B活动,你可以将数据设置为Intent,用setResult添加这个意图()方法然后完成C活动。
现在在B中检查请求代码来自C然后完成此活动。当您启动此C活动时,您还可以启动A活动的B活动。
你需要在B活动中覆盖onActivityResult(),如果你为结果启动B活动,那么你还需要定义为A活动