0
我在一個活動中有四個片段,現在我想從活動向所有片段發送數據。通過接口我可以溝通只有一個片段,請諮詢我怎麼能做到這一點。從活動到多個片段的通信
我在一個活動中有四個片段,現在我想從活動向所有片段發送數據。通過接口我可以溝通只有一個片段,請諮詢我怎麼能做到這一點。從活動到多個片段的通信
如下所示,您可以使用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)
}
}
}
希望幫助!
你想讓所有片段都能訪問活動中的變量嗎? – MichaelStoddart
共享首選項可以提供幫助。 –
@MichaelStoddart YES – deep