我有3个屏幕。 1->片段(内部片段活性)2->片段3->活动。在屏幕3中,我呼叫屏幕1做某事,然后我再次返回屏幕3.现在,如果我按下屏幕3中的后退按钮,我想转到屏幕2而不是屏幕1。我尝试了这个逻辑,但它返回到屏幕1而不是2。请提出任何建议吗?
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
Log.d("TAG","back button ");
finish();
return true;
}
return super.onKeyDown(keyCode, event);
}
答案 0 :(得分:0)
在片段事务中使用addtobackstack:
getSupportFragmentManager()。的BeginTransaction() .add(detailFragment,“detail”) //将此事务添加到后台堆栈 .addToBackStack() .commit();
http://developer.android.com/training/implementing-navigation/temporal.html
答案 1 :(得分:0)
如果您想从活动堆栈中删除活动,则需要调用finish()
方法或使用Intent.FLAG_ACTIVITY_CLEAR_TOP
启动活动,因为第二个解决方案会删除您不需要的所有活动。
在您的情况下,您需要在以下步骤中调用finish()
方法:
1→ 3
3→ 1