导航到片段onbackpressed

时间:2014-06-01 07:48:39

标签: android android-fragments

我有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);
}

2 个答案:

答案 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. 1→ 3

  2. 3→ 1