在我的应用程序中有 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/