android - 使 "up"按钮的行为类似于 Android 上的 "back"按钮

标签 android android-intent android-activity

我正在使用的 Android 应用设计要求“向上”按钮的行为与“返回”按钮的行为相同,但我不知道如何实现。

我知道必须指定 android:parentActivityName 才能使“向上”按钮在 Activity 上可见,但指定固定的父 Activity 对 Activity 并没有真正意义。想象一下有 Activity A、B 和 C 的场景:

  1. 启动到 Activity A,它包含两个按钮:每个按钮分别将您带到 Activity B 和 C。
  2. 点击 Activity B 的按钮。
  3. 过渡到 Activity B。它包含两个按钮:每个按钮分别将您带到 Activity A 和 C。
  4. 点击 Activity C 的按钮。
  5. 过渡到 Activity C。
  6. 点击“向上”按钮,您应该被带到 Activity B。
  7. 现在在 Activity B 上:点按 Activity A 的按钮。
  8. 过渡到 Activity A。
  9. 点击“向上”按钮,您应该被带到 Activity B。
  10. 在 Activity B 上点击“向上”按钮,您应该被带到 Activity A。
  11. 现在在 Activity A 上:点按 Activity C 的按钮。
  12. 过渡到 Activity C。
  13. 点击“向上”按钮,您应该被带到 Activity A。

如果我为每个 Activity 指定 android:parentActivityName,将 B 和 C 的父 Activity 设置为 A 可能有意义,但这意味着每次我们从 Activity B 或 C,我们降落在 Activity A(这并不总是应该发生的)。

有没有人有这方面的经验?

最佳答案

从您的所有三个 Activity 中添加以下内容

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case android.R.id.home:
            onBackPressed();
            return true;
    }

    return(super.onOptionsItemSelected(item));
}

当您按下应用程序上的向上按钮时,它会调用 onOptionsItemSelected id 为 android.R.id.home 的情况,然后手动调用 >onBackPressed()

关于android - 使 "up"按钮的行为类似于 Android 上的 "back"按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22947713/

相关文章:

java - Udacity Android 开发设置导致致命异常

android - 从类(class)打开 Activity

android - 如何取消警报管理器中的重复任务?

android - 为什么当用户单击确定时 onActivityResult() 返回 resultCode=0?

android - 将 Umano/SlidingUpPanel 与错误覆盖问题一起使用

Android更改日期选择器底部按钮栏的颜色

android - 如何在android中的交换机上显示进程状态?

java - Android:OnClick 按钮不会向 TextView 添加/删除值

java - 如何创建一项具有变化数据的 Activity ?

java - HashMap 中的 ListAdapter