从活动到多个片段的通信

时间:2016-12-15 11:26:40

标签: android interface callback

我在一个活动中有四个片段,现在我想将活动中的数据发送到所有片段。通过接口,我只能传达一个片段,请指教我如何实现这一目标。

1 个答案:

答案 0 :(得分:1)

您可以使用interface将数据从Activity发送到Fragment,如下所示。

<强> 1。创建界面,用于将数据从Activity传递到Fragment FragmentCommunicator.java

public interface FragmentCommunicator{
   public void passDataToFragment(Object data);
}

<强> 2。定义名为ExampleFragment.java的片段。

public class ExampleFragment extends Fragments implements FragmentCommunicator{

    //as per Android Fragment documentation an empty constructor
    public ExampleFragment(){    
    }

    public static ExampleFragment newInstance(){
      return new ExampleFragment();
    }

    ...

    //FragmentCommunicator interface implementation
    @Override
    public void passDataToFragment(Object data) {
       //you will get data here from activity, here we used data to set textview.
       textView.setText((String)data);
    }

}

第3。从活动ExampleActivity.java

发送数据
public class ExampleActivity extends AppCompatActivity {

    public FragmentCommunicator fragmentCommunicator;
    ...

    public void sendDataToFragment(Fragment fragment, Object data){
       if (fragment instanceof FragmentCommunicator) {
           fragmentCommunicator = (FragmentCommunicator) fragment;
           fragmentCommunicator.passDataToFragment(data)
       }
    }
 }

希望有所帮助!