2016-12-15 47 views
0

我在一個活動中有四個片段,現在我想從活動向所有片段發送數據。通過接口我可以溝通只有一個片段,請諮詢我怎麼能​​做到這一點。從活動到多個片段的通信

+0

你想讓所有片段都能訪問活動中的變量嗎? – MichaelStoddart

+0

共享首選項可以提供幫助。 –

+0

@MichaelStoddart YES – deep

回答

1

如下所示,您可以使用interface將數據從活動發送到片段。

1.創建接口其用於從活動數據傳遞到分片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) 
     } 
    } 
} 

希望幫助!