为了保持简单,我有3个屏幕。 A,B和C. 您可以从屏幕A访问屏幕B或C. 您可以从屏幕B访问屏幕C. 您可以从屏幕C
访问屏幕B.屏幕A的数据传递给B和C
我要做的是在屏幕B和C上创建一个按钮,然后将它们带回屏幕A.我不想开始A的新活动,因为它需要创建的数据
还有一种方法可以否决手机上的后退按钮。即如果在屏幕C上它返回到A甚至是用户点击B然后C?
感谢您的时间
答案 0 :(得分:0)
建议使用结果和startActivityForResult()。
如果你在B的C,你点击按钮转到A,你可以设置结果意图;
Intent result = new Intent();
result.putExtra("gotoA", true);
setResult(RESULT_OK, result);
finish();
然后通过覆盖onActivityResult()来捕获B中的结果,并检查额外的意图,然后完成B.
答案 1 :(得分:0)
您可以通过重新实施onBackPressed
public void onBackPressed() {
super.onBackPressed();
// Close B
// Close C
}
要将数据从一个活动传递到另一个活动,您可以使用Intent.putExtra()
(从A发送到B,C)并使用onActivityResult()
+ setResult()
将其传回A。
答案 2 :(得分:-1)
是的,你可以覆盖后退按钮的功能(虽然这不是一个好习惯)。您需要覆盖ActivityC和此方法中的onBackPressed()
方法
Intent homeIntent=new Intent(this,ActivityA.class);
homeIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(homeIntent);
编辑:查看FLAG_ACTIVITY_CLEAR_TOP的文档,它将创建您的活动,如果它不存在,并将清除它上面的所有活动。您还可以为ActivityA传递此意图的数据。