【问题标题】:Exit to the menu with back button使用返回按钮退出菜单
【发布时间】:2015-03-19 02:40:20
【问题描述】:

我是 Android 新手。我有“菜单”活动,其中有 3 个项目的 ListView。当我点击第一个项目时,它正在打开新的活动(“播放”活动)。在那个活动中,我有一个按钮,它调用另一个活动“结果”。我正在尝试在“结果”活动中进行 onBackPressed 方法,该方法返回到“菜单”活动。 这是一段代码,但这段代码只是返回“播放”活动:

@Override
public void onBackPressed() {
    // TODO Auto-generated method stub
    finish();
}

另一个代码只是返回到“菜单”活动,但没有关闭“结果”活动

@Override
public void onBackPressed() {
    // TODO Auto-generated method stub
    Intent intent = new Intent(this , Menu.class);
    startActivity(intent);
}

请告诉我如何处理它。 谢谢。

【问题讨论】:

  • 您可以使用intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTROY) 启动您的菜单活动。顺便说一句,你应该添加 android 标签。
  • @Chatea 这是一个糟糕的建议。它会破坏标准导航,可能不是用户想要的。有更好的方法来做到这一点。

标签: android android-activity onbackpressed


【解决方案1】:

这样做:

@Override
public void onBackPressed() {
    Intent intent = new Intent(this , Menu.class);
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    startActivity(intent);
}

这将从堆栈中清除所有活动并返回到Menu 活动。

【讨论】:

  • 使用Intent.FLAG_ACTIVITY_CLEAR_TOP时需要什么launchMode类型?虽然我不是OP,但我需要它。谢谢。
  • @AnggrayudiH launchMode="singleTop"
  • 您可以为此使用任何启动模式。如果您使用标准启动模式,这将完成已启动 Activity 的当前实例,然后创建它的新实例。如果您使用“singleTop”启动模式,那么它不会创建该 Activity 的新实例,它只会使用新的 Intent 调用 onNewIntent()
【解决方案2】:

首先欢迎来到安卓世界。你在这里犯了两个基本的和初学者的错误。但到了你会擅长它的时候,没有问题,也没有后顾之忧。

现在让我们谈谈您的问题。您可以通过以下方式实现。

当您通过单击按钮从播放类移动到结果类时,您应该完成该播放类,以便它不应该在后堆栈中。

例如:

        playClassBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
            Intent intent = new Intent(this , ResultActivity.class);
            startActivity(intent);

            }
        });

并在 ResultActivity 中覆盖你已经完成的 onBackPressed 方法

【讨论】:

    猜你喜欢
    • 2014-07-31
    • 2016-10-28
    • 2013-12-02
    • 1970-01-01
    • 2016-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多