Поскольку вы работаете на Android, я бы порекомендовал компонент ViewModel, который упрощает взаимодействие между действием и его фрагментами.
Сначала добавьте пакет в ваше приложение
implementation 'androidx.lifecycle:lifecycle-extensions:2.0.0'
Затем создайте класс ViewModel
public class MyViewModel extends ViewModel {
public MutableLiveData<ArrayList<Post>> posts = new MutableLiveData<ArrayList<Post>>();
}
Теперь во фрагменте подпишитесь на него.
public class DetailFragment extends Fragment {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
SharedViewModel model = ViewModelProviders.of(getActivity()).get(SharedViewModel.class);
model.posts.observe(this, { posts ->
// Update the UI.
});
}
}
Затем установите значение в MainActivity, как показано ниже, и вуаля, у вас есть данные втвой фрагмент.Подробнее об этом можно прочитать здесь
public class MyActivity extends AppCompatActivity {
public void onCreate(Bundle savedInstanceState) {
// Create a ViewModel the first time the system calls an activity's onCreate() method.
// Re-created activities receive the same MyViewModel instance created by the first activity.
MyViewModel model = ViewModelProviders.of(this).get(MyViewModel.class);
model.users.setValue(posts);
}
}