[英]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.