我在一个活动中有四个片段,现在我想将活动中的数据发送到所有片段。通过接口,我只能传达一个片段,请指教我如何实现这一目标。
答案 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)
}
}
}
希望有所帮助!