【问题标题】:Pass data to previous fragment将数据传递给前一个片段
【发布时间】:2015-09-21 07:31:36
【问题描述】:

我有两个片段 A 和 B。我将使用以下方法从片段 A 转到片段 B。

getActivity().getSupportFragmentManager().beginTransaction().replace(R.id.content_frame, new B()).addToBackStack(TAG).commit();

现在我想将数据从片段 B 发送到片段 A,即上一个片段。 你能告诉我如何将数据发送到以前的片段吗?

谢谢

【问题讨论】:

标签: android android-fragments android-activity fragment


【解决方案1】:

查看documentation 关于 Fragments 及其通信的信息。

您想将信息从一个片段传递到另一个片段吗?一个片段不应该知道其他片段。让fragment B通过接口与其activity通信,让activity将数据传递给fragment A

【讨论】:

    【解决方案2】:

    您可以通过替换片段的Activity在片段之间进行通信。

    1. 将数据传递给活动,然后调用要更新数据的片段的方法。 2.其他方式你可以在Activity中获取一个变量并将数据保存到这个变量中,当另一个片段(片段A)被加载(恢复)然后通过获取显示来自Activity变量的数据

      ((HomeActivity)getActivity).variableName;

    【讨论】:

      【解决方案3】:

      您创建一个名为MyFragmentFragment 的子类,A、B 是它的实例。然后创建一个静态工厂方法,将MyFragment 作为参数,例如:

      public static MyFragment newInstance(MyFragment a){
          MyFragment b = new MyFragment();
          MyFragment b.a = a;
          return b;
      }
      

      b.aMyFragment 的字段。然后就可以参考a发送数据了。

      【讨论】:

      • 这要么是拖钓,要么是非常糟糕的建议。
      • @2Dee 你能解释一下原因吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多