使用导航抽屉和后退按钮在活动之间正确导航?

时间:2015-08-04 14:05:53

标签: android navigation-drawer

我有以下情况:

一个主要ListActivity。该列表由POJO对象组成,每个项目都是不同的POJO。

每个POJO包含不同的组。对于每个组,我做了不同的Activity

让我们说POJO1包含 A B C 组,按下后, ActivityA 将会被打开,其余活动 ActivityB ActivityC 之间的导航使用NavigationDrawer完成。

所有群组活动都会实现自定义类 MyNavigationDrawerClass ,这是我应用中Navigation Drawer的核心。

每个 ActivityA B C 等都有 SettingsActivity ,这是严格个人的,取决于从哪里开始。

现在的问题是:如何每次从任何 A B C 等活动导航到主ListActivity BackButton被按下了?

我将提供一个例子:

  1. 应用已启动 - 主要列表活动已显示;
  2. 项目已按下, ActivityA 已启动NavigationDrawer;
  3. 打开NavigationDrawer并打开 ActivityC ;
  4. 按下BackButton后,用户将导航回 ActivityA ,但我希望将用户导航到主列表活动
  5. 我尝试了什么:

    1. android:noHistory="true"中的每个 ActivityA ActivityB ActivityC 添加AndroidManifest。这不起作用,因为当我从 ActivityA 打开 SettingsActivity 并返回时,用户导航到主列表活动,而不是 ActivityA - 令人困惑和误导。
    2. 覆盖 MyNavigationDrawerClass 中的onBackPressed,然后使用Intent启动主要列表活动。这不起作用,因为堆栈中仍有先前的活动,当从主列表活动按下BackButton时,用户将被导航到它们。
    3. 我希望我能清楚地解释这个情况。

      任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

您可以覆盖public void onBackPressed(){...},以便将用户重定向到您想要的位置:

public void onBackPressed()
{
    Intent intent = new Intent(this.getApplicationContext(), MainListActivity.class);
    startActivity(intent);    
} 

看看这个link可以帮到你