【问题标题】:Navigate back to activity from fragment从片段导航回活动
【发布时间】:2014-06-28 22:59:00
【问题描述】:

我有Demo 类,我通过FragmentActivity 类扩展了演示。我还有另一堂课Fragment1 extends Fragment。并且单击按钮我从活动Demo 导航到片段Fragment1。现在我想从Fragment1 回到Demo。那么我该如何回到演示活动呢?

谢谢。

【问题讨论】:

  • 努力解释,因为我不明白。也许包括一些代码并展示你尝试过的东西。

标签: android android-fragments navigation android-fragmentactivity


【解决方案1】:

你的问题缺乏很多细节,所以我在这里暗中尝试,但是......

我假设在您的onClick 代码中,您使用 Fragment Manager 创建一个新的 Fragment Transaction,然后将 Fragment 添加到该事务并提交它?

点击后退按钮时活动关闭的问题可能是因为您的片段未添加到称为“后退堆栈”的东西中。你可以在这里找到文档http://developer.android.com/reference/android/app/FragmentTransaction.html#addToBackStack%28java.lang.String%29,但最重要的是,你需要做的主要事情是修改你的代码以包含以下行:

FragmentManager fragmentManager = getFragmentManager()
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.add(R.id.fragment_container, new Fragment1());
fragmentTransaction.addToBackStack("Transaction ID"); // <-- This is key!
fragmentTransaction.commit();

一旦完成,Android 将记住添加片段作为导航动作,并在点击返回按钮时撤销事务。


如果这不是您想要的,或者如果它不起作用,请提供更多详细信息和一些代码示例,我可以再看看。

【讨论】:

    【解决方案2】:

    尝试手动将要返回的片段添加到后台堆栈。

    FragmentTransaction transaction = getFragmentManager().beginTransaction();
    YourFragmentName myFragment = new YourFragmentName();
    transaction.replace(R.id.fragment_container, myFragment);
    
    //if you with to add it to backStack, do this, otherwise skip the line below
    transaction.addToBackStack(null);
    transaction.commit();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多