Передача информации из Activity в layouttabs

Столкнулся с проблемой, что нужно передать строку из MainActivity во фрагмент, который находится в viewpager. Подскажите как данный процесс можно реализовать?

public class MainActivity extends AppCompatActivity {

    private TabLayout tabLayout;
    private ViewPager viewPager;

    private oneFragment one;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        tabLayout = (TabLayout)findViewById(R.id.tablayout);
        viewPager = (ViewPager)findViewById(R.id.viewpager);

        one = new oneFragment();
        tabLayout.setupWithViewPager(viewPager);

        viewPagerAdapter adapter = new viewPagerAdapter(getSupportFragmentManager(), 0);

        adapter.addFragment(one, "Monday");

        viewPager.setAdapter(adapter);
    }
}

public class oneFragment extends Fragment {

    private TextView textView;

    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        View v = inflater.inflate(R.layout.fragment, container, false);
        textView = (TextView) v.findViewById(R.id.textview);

        return v;
    }

    public void addData(String data) {
        textView.setText(data);
    }
}

public class viewPagerAdapter extends FragmentPagerAdapter {

    private List<Fragment>fragments = new ArrayList<>();
    private List<String>title = new ArrayList<>();

    public viewPagerAdapter(@NonNull FragmentManager fm, int behavior) {
        super(fm, behavior);
    }

    public void addFragment(Fragment fragment, String Title){
        fragments.add(fragment);
        title.add(Title);
    }

    @NonNull
    @Override
    public Fragment getItem(int position) {
       return fragments.get(position);
    }

    @Override
    public int getCount() {
        return fragments.size();
    }

    @Nullable
    @Override
    public CharSequence getPageTitle(int position) {
        return title.get(position);
    }
}

Ответы (2 шт):

Автор решения: Circassian

Ты ведь уже инициализировал фрагмент и во фрагменте сделал соответствующий метод. Осталось лишь его вызвать

one.addData("")

Или сделать список fragments в адаптере public и брать из него фрагмент по position

Fragment fragment = adapter.fragments.get(0);
if (fragment instanceof oneFragment) {
    ((oneFragment) fragment).addData("");
}

Или

Object o = adapter.getItemPosition(0);
if (o instanceof oneFragment) {
    ((oneFragment) o).addData("");
}
→ Ссылка
Автор решения: VRoff

В ViewPagerAdapter нужно переписать метод getItem

@NonNull
    @Override
    public Fragment getItem(int position) {

        oneFragment one = new oneFragment();
        Bundle bundle = new Bundle();
        bundle.putString("message", "Hello");
        one.setArguments(bundle);
        return one;
    }

А в самом классе фрагмента добавить

textView.setText(getArguments().getString("message"));
→ Ссылка