繁体   English   中英

Android中的“后退”按钮导航

[英]Back button Navigation in Android

我是Android开发的新手。 我按下返回按钮时遇到问题。

如果使用饰面,则特定视图将被破坏。 下次我按返回按钮时,该应用程序结束。 我需要使用后退按钮进行受控导航

例如这些是我的活动A,B,C,D

我的流量应该是

从活动A到B到C到D到A

并且用户可以在D到A之间导航

但是当用户从D导航到A

如果他再次按下返回按钮

它不应导航到任何其他活动

请帮忙

您想从D导航到“活动A”。因此,您可以按以下方式从D调用“活动A”,

Intent intent = new Intent(this, A.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); //clears B and C from stack.
startActivity(intent);

我想让某个活动保留其后退状态,只是在开始其他活动之前不要调用finish()方法。 如果清单文件中没有条目android:noHistory="true" ,那么当您按下后退按钮时,Android将处理上一个活动。

只是覆盖

@Override
    public void onBackPressed() {
        super.onBackPressed();//comment this if you want to implement your own logic
        //Do whatever you like
    }

在您的A活动上,然后开始D活动。

在D中覆盖onBackPress

@Override
public void onBackPressed()
{
    super.onBackPressed();
    Intent i = new Intent(this, A.class);
    i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    startActivity(i);
}

尝试一下只需在“活动A”中键入该内容即可,无需更改

@Override public void onBackPressed(){

}

每当从另一个活动调用该活动时,调用活动都会根据活动生命周期进入堆栈。 当您从A移到B时,A被存储到堆栈中并且B被打开。 您想按(A到B到C到D到A),(D到A或反之),但不想从B到A或C到B或D到C或A到D。

当您从B调用活动C时,还请调用finish()销毁B,并且类似地,当您从C调用D来销毁C时,也就不能后退。 这将限制您的流量。

A类扩展了活动{

//点击按钮

Intent intent=new Intent(A.this,B.class);
startactivity(intent);

}

B类扩展了活动{

//点击按钮

Intent intent=new Intent(B.this,C.class);
startactivity(intent);
finish();

}

C类扩展了活动{

//点击按钮

Intent intent=new Intent(C.this,D.class);
startactivity(intent);
finish();

}

D类扩展了活动{

//点击按钮

Intent intent=new Intent(D.this,A.class);
startactivity(intent);

}

这样,当您从A转到B时-> A存储在堆栈中,B到C-> B被破坏(使用结束),C到D-> C被破坏,您可以直接从D到A使用后退按钮。 如果从D转到A后再次按返回按钮,它将到达D,然后再次按返回将到达A(启动第一个活动。),然后再次按返回,App将结束。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM