为了简单起见,我有3个屏幕。A、B和C。您可以从屏幕A访问屏幕B或C。您可以从屏幕B访问屏幕C。您可以从屏幕C访问屏幕B
来自屏幕A的数据被传递到B和C
我要做的是在屏幕B和C上创建一个按钮,无论它们位于何处,都会将其带回屏幕A。我不想启动A的新活动,因为它需要它创建的数据
此外,还有一种方法可以否决电话上的后退按钮的功能。也就是说,如果在屏幕C上返回到A,那么用户是否点击了B,然后点击了C?
耽误您时间,实在对不起
发布于 2011-07-27 16:19:50
一个建议是使用results和startActivityForResult()。
如果你从B到C,点击按钮转到A,你可以设置结果意图;
Intent result = new Intent();
result.putExtra("gotoA", true);
setResult(RESULT_OK, result);
finish();然后通过覆盖onActivityResult()并额外检查意图来捕获B中的结果,然后完成B。
发布于 2011-07-27 16:26:03
您可以通过重新实现onBackPressed来覆盖back按钮
public void onBackPressed() {
super.onBackPressed();
// Close B
// Close C
}为了将数据从一个活动传递到另一个活动,您可以使用Intent.putExtra() (从A发送到B,C),并使用onActivityResult() + setResult()将数据传递回A。
发布于 2011-07-27 16:25:48
是的,您可以重写back按钮所做的事情(但这不是一个好的做法)。您需要在ActivityC中和此方法内部重写onBackPressed()方法
Intent homeIntent=new Intent(this,ActivityA.class);
homeIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(homeIntent);编辑:查看FLAG_ACTIVITY_CLEAR_TOP的文档,它会在你的活动不存在的时候创建它,并清除它上面的所有活动。您还可以为ActivityA传递有关此意图的数据。
https://stackoverflow.com/questions/6841176
复制相似问题