【问题标题】:Back button on actionbar closes entire app instead of going back to previous activity操作栏上的后退按钮关闭整个应用程序,而不是返回上一个活动
【发布时间】:2018-10-24 14:40:47
【问题描述】:

我是 android studio 的初学者,我遇到问题已经有一段时间了。在我的操作栏中,后退按钮关闭整个应用程序,而不是转到上一个活动!这是我的代码

  @Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_brochures__view2);

    if(getSupportActionBar()!=null)
    {
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setDisplayShowHomeEnabled(true);
    }

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        // Respond to the action bar's Up/Home button
        case android.R.id.home:
            NavUtils.navigateUpFromSameTask(this);
            onBackPressed();

            return true;
    }
    return super.onOptionsItemSelected(item);
}

这是 Android 清单

<activity
        android:name=".Brochures_View2"
        android:launchMode="singleTask"

        android:parentActivityName=".Brochures_Menu"/>

所以我做了一些研究,发现它与 Android 启动模式有关,但是当我尝试了所有可能的选择时,后退/向上按钮仍然会关闭整个应用程序。我已经尝试删除 onbackpressed 并放入 finish() 但没有用。

谢谢你

【问题讨论】:

  • 什么是navigateUpFromSameTask,你是如何开始这个活动的?
  • navigateUpFromSameTask() 完成当前活动并启动(或恢复)适当的父活动,在这种情况下,我在清单中指定的前一个活动。
  • onBackpressed() 没有做任何事情;我试过把它放在代码的不同部分,但问题很顽固;应用程序不断关闭。
  • 从清单文件中删除“launchMode”
  • 我刚刚尝试删除 launchMode ,但没​​有用

标签: android android-layout


【解决方案1】:

您可以做的是覆盖 onBackPressed 并在按下该按钮时触发您想要的活动。它允许您控制应用程序的流程,而不是依赖于 Activity 堆栈。

【讨论】:

  • @列宁 我该怎么做?我已经在具有 onBackPressed 的函数/方法的顶部进行了覆盖
  • 你只需要重写该方法并开始一个新的活动。如果你想去上一个活动(家),只需重新开始。 Intent intent = new Intent(this, HomeActivity.class);开始活动(意图)
【解决方案2】:

好吧,我终于想通了。问题是 finish() ;是的,在我开始所有活动(意图)之前,我已经完成()。所以据我了解,finish() 从堆栈中弹出活动,因此使堆栈为空。所以在我的情况下,堆栈上什么都没有,因为我在开始任何意图/活动之前调用了 finish(),让应用程序别无选择,只能退出。现在说得通了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多