在两个片段之间进行通信

时间:2014-01-25 13:38:03

标签: java android android-fragments android-activity communication

我有两个扩展Fragment.Both的类在同一个Activity中。我想在另一个片段类中按下按钮时在1个片段类中触发一个方法。我知道这可以使用接口或意图来完成。任何人都给我一个代码样本来做这件事。 提前致谢

3 个答案:

答案 0 :(得分:4)

:d

在此示例中, FragmentA 调用notify。

<强> INotifier

public interface INotifier {
    public void notify(Object data);
}

<强>的Utils

public class Utils {
    public static INotifier notifier;
}

<强> FragmentA

public FragmentA extends Fragment {

   public void onCreateView(...) {

   }

   public void inSomeMethod() {
        if (Utils.notifier != null) {
           Utils.notifier.notify(data);
        }
   }
}

<强> FragmentB

public FragmentB extends Fragment implements INotifier {

   public void onCreateView(...) {
       Utils.notifier = this;   
   }

   @Override
   public void notify(Object data) {
       // handle data
   }
}

答案 1 :(得分:0)

我不知道为什么有些程序员会这么复杂。正如我在你的问题中所理解的那样,你想要在fragment1中有一个按钮,当你点击它时,fragment2的textView将会改变。

只需调用fragment1中的onClick和onClick方法,调用并执行你喜欢的任何内容到fragment2的textView。

textView.setText("Hello");

答案 2 :(得分:0)

在FragmentA中,您可以致电:

setTargetFragment(Fragment FragmentA)

在FragmentB中调用:

getTargetFragment();