android - show 为 android 中的后退按钮路径指定条件

标签 android

在我的应用程序中有 10 个屏幕,我可以从剩余的 9 个屏幕转到屏幕 10,这里如果我按下设备后退按钮然后应用程序显示上一个屏幕但是如果屏幕 10 从屏幕 2 重新显示我会更改路径如何我可以只指定条件吗?

最佳答案

最简单的方法可能是在每次用于启动该 Activity 的 Intent 中提供一个独特的额外内容,代表您来自的屏幕,以便您可以根据需要修改行为onBackPressed().

例如,从任何启动“屏幕 10”的 Activity X:

Intent intent = new Intent(...);
intent.putExtra("from_screen", x); //where x is a unique number or some other identifier
startActivity(intent);

然后,在目标 Activity 的 onBackPressed() 中,您可以检查启动该 Activity 的 Intent 的额外内容:

@Override
public void onBackPressed() {
    Intent callingIntent = getIntent();
    int callingScreen = callingIntent.getIntExtra("from_screen", -1);

    //Do some logic based on the screen you came from
    switch(callingScreen) {
        case 1:
            //Magic action when we came from screen 1
            break;
        case 5:
            //Magic action when we came from screen 5
            break;
        default:
            //Normal for everyone else, which is to just finish()
            super.onBackPressed();
            break;
    }
}

确保在您不希望行为也被修改的情况下调用 super

关于android - show 为 android 中的后退按钮路径指定条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17217916/

相关文章:

Android:如何在右上角的按钮角添加三角形

java - 如何在我的 Android 选项卡中创建 YouTube 应用程序?

java - Android XML id "listView"未在任何地方定义

android - 自己的 Android 硬件键盘快捷键

android - 如何像 Jugnoo 应用程序那样使用代码启用 GPS?

java - 空对象引用上的 void android.support.v7.widget.Toolbar.setTitle(java.lang.CharSequence)'

android - 从 fragment 返回到 Activity onBackPressed

android - 如何使 ImageSpan 按基线对齐

Android Imageview setOnTouchListener 不工作?

android - 从 Google Fit API Android 获取当前 Activity