如何显示活动堆栈中的活动

发布于 2024-10-27 08:46:31 字数 254 浏览 1 评论 0原文

我需要一些有关活动堆栈的帮助。

在我的应用程序中,我有 6 个屏幕,用户从

  1-->2-->3-->4-->

当我转到 4 个屏幕时导航,我有取消按钮,

当用户单击该按钮时,它应该转到第二个屏幕,

当用户单击键盘上的后退按钮时,它应该转到 1 个屏幕已经在活动堆栈中如何执行此操作。

请给我一个例子。

i need some help about activity stack.

In my app i have 6 screens user navigate from

  1-->2-->3-->4-->

when i go to 4 screen i have cancel button

when user click on that button it should go to second screen and

when user clicks back button on keypad it should go to 1 screen which was already in activity stack how to do this.

Please give me a example.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

数理化全能战士 2024-11-03 08:46:31

只需使用 FLAG_ACTIVITY_CLEAR_TOP

当用户点击按钮时:

Intent intent = new Intent(ActivityD.this, ActivityB.class);
Intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);

当用户按下返回时:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        Intent intent = new Intent(ActivityD.this, ActivityA.class);
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
        startActivity(intent);
    }
    return super.onKeyDown(keyCode, event);
}

此代码将用户带到第一个 Activity。由于 FLAG_ACTIVITY_SINGLE_TOP,该 Activity 不会被重新创建。当活动已经在后台堆栈时,将调用 onNewIntent(),例如您可以在其中使用来自意图的数据。

如果您希望这些行为作为您的活动的默认行为,请将这些标志放入 android 清单中的活动声明中。

Just use FLAG_ACTIVITY_CLEAR_TOP

When user clicks button:

Intent intent = new Intent(ActivityD.this, ActivityB.class);
Intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);

When user presses back:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        Intent intent = new Intent(ActivityD.this, ActivityA.class);
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
        startActivity(intent);
    }
    return super.onKeyDown(keyCode, event);
}

This code will take the user to first activity.The activity won't be recreated because of FLAG_ACTIVITY_SINGLE_TOP. When activity is already on back stack the onNewIntent() will be invoked in which you can use data from intent for example.

If you want such behaviors as default for yours activities put these flags to android manifest into activity declarations.

泡沫很甜 2024-11-03 08:46:31

使用 onBackPressed() 和意图机制来启动或重新显示必要的活动。

use onBackPressed() and intent mechanism to launch or reshow necessary activity.

勿忘初心 2024-11-03 08:46:31

//对于屏幕 4 上的返回按钮

Onclick(View v)
{
if(v==Backbtn)
{
finish();
startActivity(new intent(this,SecondActivity.class));
}
}

// 按下返回键返回到屏幕 1

public boolean onKeyDown(int keyCode, KeyEvent event) {
        switch (keyCode) {
        case KeyEvent.KEYCODE_BACK:
            startActivity(new intent(this,FirstActivity.class));
                     return true;
        }
        return super.onKeyDown(keyCode, event);
    }

//For Back btn on screen 4

Onclick(View v)
{
if(v==Backbtn)
{
finish();
startActivity(new intent(this,SecondActivity.class));
}
}

// for back key press to return to 1 screen

public boolean onKeyDown(int keyCode, KeyEvent event) {
        switch (keyCode) {
        case KeyEvent.KEYCODE_BACK:
            startActivity(new intent(this,FirstActivity.class));
                     return true;
        }
        return super.onKeyDown(keyCode, event);
    }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文