让#34; up"按钮的行为类似于"返回" Android上的按钮

时间:2014-04-08 20:40:27

标签: android android-intent android-activity

我正在使用的Android应用程序设计调​​用“向上”按钮的行为与“后退”按钮的行为相同,但我不确定如何实现这一点。

我知道必须为活动提供“向上”按钮指定android:parentActivityName,但指定固定的父活动对活动没有意义。想象一下活动A,B和C的这种情况:

  1. 启动活动A,它包含两个按钮:每个按钮分别带您进入活动B和C.
  2. 点击活动B的按钮。
  3. 转换为活动B.它包含两个按钮:每个按钮分别带您进入活动A和C.
  4. 点击活动C的按钮。
  5. 过渡到活动C。
  6. 点按“向上”按钮, 将被带到活动B。
  7. 现在在活动B上:点击活动A的按钮。
  8. 过渡到活动A.
  9. 点按“向上”按钮, 将被带到活动B。
  10. 开启活动B点击“向上”按钮,进入活动A.
  11. 现在点击活动A:点击活动C的按钮。
  12. 过渡到活动C。
  13. 点按“向上”按钮, 将被带到活动A。
  14. 如果我要为每个活动指定android:parentActivityName,那么将B和C的父活动设为A是有意义的,但这意味着每次我们从活动B或C点击“向上”按钮时,我们降落在活动A(这并不总是应该发生的事情)。

    有没有人有这类事情的经验?

2 个答案:

答案 0 :(得分:54)

从您的所有三项活动中添加以下内容

@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()

答案 1 :(得分:0)

科特琳

对于Kotlin时代来这里的任何人,如果您set your toolbar up with the NavController,“向上”按钮的行为将类似于后退按钮。

toolbar.setupWithNavController(findNavController(R.id.nav_host_fragment),findViewById(R.id.full_drawer_layout))