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/

相关文章:

javascript - 如何正确重定向到 Android 上的 Play 商店?

java - Android Studio错误R.java

android - ionic 2 中的 window.resolveLocalFilesystemUrl

android - .dex文件中方法引用数超过64K

java - Asynctask 未知类型执行

尽管使用了公式,但 Android 应用程序小部件太大

android - CircleCI Build 中的自动化测试失败并出现异常

c# - Xamarin android OnSharedPreferenceChangeListener

android - 在MVVMCross中的ItemTemplate中绑定(bind)item对象

android - Textview 未按需要从 strings.xml 中显示