活动之间的导航

时间:2016-06-30 15:54:22

标签: android

我有三项活动(A,B,C),

活动A中的按钮将用户发送到活动B

在活动B中,有另一个按钮将用户发送到活动C,当活动发生时,还会在活动B上调用finish()。

现在,每当用户在活动C中按下设备的按钮时,它就会将它们发送到活动A.我不希望这种情况发生。如果用户在活动C中按下后退按钮,应用程序应该完成。或者去最近的屏幕"标签?无论你怎么称呼它。请帮我完成这件事。

3 个答案:

答案 0 :(得分:1)

尝试在活动C中覆盖onBackPressed,如下所示:

@Override
public void onBackPressed() {
    finishAffinity();
}

对于较旧的apilevel> = 11,在启动活动C时尝试此操作:

Intent intent = new Intent(MainActivity.this, TestActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);

答案 1 :(得分:0)

场景1: 你可以在进行活动时完成()A。然后在活动C上覆盖onBackPress()并调用方法finish();它将完成活动C.

场景2:如果你想在从C返回而不是从B返回时完成Activty A,则每次和每次后退都完成Activty按下通过在onBackPress上覆盖它来启动上一个活动()

例如`

onBackPress()
{
Intent intent = new Intent(this,prevActivity.class);
startactivty(intent);
finish();
}

另一种方法是当你重写onBackPress()insyead os startActivity() startactivityForResult();

并发送代码。 在每个类处理结果的活动,如果特定代码存在,则完成()活动。

答案 2 :(得分:0)

点击活动A的按钮:

 btn_A.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        Intent i=new Intent(A.this,B.class);
        startActivity(i);
        finish();
        }
});

在活动B中:

@Override
public void onBackPressed() {
    super.onBackPressed();

    Intent i=new Intent(B.this,A.class);
        startActivity(i);
        finish();

}       
}