Android 当我们在HTC或phone上单击后退按钮时,它不会';不要进入登录屏幕
我的应用程序屏幕类似于(仅限首次安装时间)许可证屏幕1->(仅限首次安装时间)数据库设置屏幕2->启动屏幕3-->登录屏幕4-->同步屏幕-->主屏幕5 当我从手机上点击后退按钮时,我不会进入上一个屏幕 换句话说,, 我一共有25个屏幕。屏幕1到屏幕5基本设置屏幕。屏幕5是主屏幕。 我现在在主屏幕,我点击了后退按钮从电话键,我不会去登录屏幕4或启动屏幕3或2或1 但是如果我在第10屏按下了后退键,那么此时它可以进入第5屏。无法进入第一屏幕4或屏幕3或屏幕2或屏幕1 (主屏幕我正在使用ActivityGroup的选项卡。在那里我使用了Android 当我们在HTC或phone上单击后退按钮时,它不会';不要进入登录屏幕,android,Android,我的应用程序屏幕类似于(仅限首次安装时间)许可证屏幕1->(仅限首次安装时间)数据库设置屏幕2->启动屏幕3-->登录屏幕4-->同步屏幕-->主屏幕5 当我从手机上点击后退按钮时,我不会进入上一个屏幕 换句话说,, 我一共有25个屏幕。屏幕1到屏幕5基本设置屏幕。屏幕5是主屏幕。 我现在在主屏幕,我点击了后退按钮从电话键,我不会去登录屏幕4或启动屏幕3或2或1 但是如果我在第10屏按下了后退键,那么此时它可以进入第5屏。无法进入第一屏幕4或屏幕3或屏幕2或屏幕1 (主屏幕我正在使用Activi
标记\u活动\u清除\u顶部
)
请帮帮我
提前感谢….在开始后只需在每4个初始屏幕(活动)中调用finish(完成)删除标志
标志\u活动\u CLEAR\u TOP
,因为这是导致问题的原因。。该标志的作用是,一旦您开始新的活动,它将关闭以前的活动…如果您当前处于第5屏,当用户按下第1屏时::放置
finish()代码>方法在2md、第三、第四屏幕中显示 当您从当前活动启动新活动时,不要完成当前活动并启动新活动,以便前一个活动将推到后堆栈上
在主屏幕中,您使用的是活动组,因此有一个选项卡活动管理所有选项卡,因此您必须覆盖onBackpressed()
,并且您必须完成主活动,以便最后一个活动出现在前面
在活动组中,您必须以这种方式实现
public class FirstGroup extends ActivityGroup {
// Keep this in a static variable to make it accessible for all the nested activities, lets them manipulate the view
public static FirstGroup group;
// Need to keep track of the history if you want the back-button to work properly, don't use this if your activities requires a lot of memory.
private ArrayList<View> history;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.history = new ArrayList<View>();
group = this;
// Start the root activity withing the group and get its view
View view = getLocalActivityManager().startActivity("Home", new
Intent(this,Homepage.class)
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))
.getDecorView();
// Replace the view of this ActivityGroup
replaceView(view);
}
public void replaceView(View v) {
// Adds the old one to history
history.add(v);
// Changes this Groups View to the new View.
setContentView(v);
}
public void back() {
if(history.size() > 0) {
history.remove(history.size()-1);
if(history.size() > 0) {
setContentView(history.get(history.size()-1));
}
else {
finish();
}
}else {
finish();
}
}
@Override
public void onBackPressed() {
FirstGroup.group.back();
return;
}
}
公共类FirstGroup扩展ActivityGroup{
//将其保存在一个静态变量中,以使所有嵌套活动都可以访问它,并允许它们操纵视图
公共静态第一组;
//如果希望“后退”按钮正常工作,则需要跟踪历史记录。如果您的活动需要大量内存,请不要使用此按钮。
私家侦探史;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
this.history=new ArrayList();
组=此;
//使用组启动根活动并获取其视图
View=getLocalActivityManager().startActivity(“主页”,新建)
意图(此,Homepage.class)
.addFlags(意图.标志\活动\清除\顶部))
.getDecorView();
//替换此ActivityGroup的视图
替换视图(视图);
}
公共视图(视图v){
//将旧的添加到历史记录中
历史。添加(v);
//将此组视图更改为新视图。
setContentView(v);
}
public void back(){
如果(history.size()>0){
history.remove(history.size()-1);
if(history.size()>0){
setContentView(history.get(history.size()-1));
}
否则{
完成();
}
}否则{
完成();
}
}
@凌驾
public void onBackPressed(){
FirstGroup.group.back();
返回;
}
}
这里有一个back()
方法,用于导航,当历史记录中没有活动时,它将完成()活动组
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
moveTaskToBack(false); return true;
}
return super.onKeyDown(keyCode, event);
}
这是我能做的…我喜欢这样做你能澄清你的问题吗?我现在在主屏幕上(这意味着我已经从屏幕1来到屏幕5)。我点击了电话键上的后退按钮,我不会进入登录屏幕或启动屏幕。。。我该怎么做……那么你的应用程序将去哪里?任何特定的屏幕或只是完成应用程序?public boolean onKeyDown(int-keyCode,KeyEvent-event事件){if(keyCode==KeyEvent.keyCode\u BACK){moveTaskToBack(false);return true;}return super.onKeyDown(keyCode,event);}
我这样做是为了让他退出应用程序。因为据我所知,他所做的任何活动都不可用