【问题标题】:android up navigation behave as backandroid向上导航行为作为返回
【发布时间】:2014-03-04 03:30:17
【问题描述】:

我的应用程序中有一个活动。让我们称它们为活动 1、2、3。他们都是孩子 主要活动。在我的应用程序中,我为每个子活动定义:

    <activity
        android:name="SettingsActivity"
        android:label="@string/title_gen_activity_settings"
        android:parentActivityName="MainActivity" >
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="MainActivity" />
    </activity>

在 onOptionsItemSelected 中处理:

    else if(item.getItemId() == R.id.set_general_settings){
        Intent intent = new Intent(this, GeneralSettingsActivity.class); 
        startActivity(intent);
    }

但是,例如,如果我从 main->1->2->3 导航,然后按向上按钮,它会返回 3->2->1-> main。它不会让我回到 3->main。可能是什么原因?

【问题讨论】:

  • 还有代码吗?就这个?
  • 是否有任何其他代码可能相关?
  • 我从 onOptionsItemSelected 添加了代码。我只是不确定哪些代码可能与此相关。
  • @Jacob 除非我弄错了,否则这似乎是您如何进入活动的代码,而不是从那里返回。如果您发布有关如何返回的代码,那么我们可能会弄清楚为什么它不会进入父活动。
  • 我不处理。可能这是一个问题。我不知道要处理什么以及在哪里处理。你有什么例子可以指点我吗?

标签: android android-activity android-navigation


【解决方案1】:

要处理硬件后退按钮,您可以使用此代码(在 How to handle back button in activity 上找到)

@Override
public void onBackPressed() {//for api level 5
    // your code.
}

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {//higher than api 5
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        // your code
        return true;
    }

    return super.onKeyDown(keyCode, event);
}

如果您的最低 API 设置为 5 级或更低,请使用第一个(据我所知应该可以)

现在,我们需要向上导航。所以,你的代码注释在哪里,你应该可以写:

NavUtils.navigateUpFromSameTask(this);

并让它正确导航。

【讨论】:

  • 我不需要回来。这就是它现在的工作方式。我需要起来。所以每个孩子都会去main。
  • @Jacob 你应该在你的问题中发布这些代码
  • @Jacob,啊,我的误会。如果您发布完整代码,我可以提供更多帮助。
  • @T3KBAU5 谢谢。我正在尝试这个,如果它有效,我会更新。如果我们需要在代码中处理它,您能否解释一下在 AndroidManifest.xml 中提到父级有什么意义?
猜你喜欢
  • 2013-11-15
  • 1970-01-01
  • 2018-05-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-10
  • 1970-01-01
相关资源
最近更新 更多