Всем привет!
Я пытаюсь отправить данные из MainActivity в один из фрагментов, созданных с помощью ViewPager2.
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main_activity);
ViewPager2 viewPager = findViewById(R.id.viewPager);
MainPagerAdapter pagerAdapter = new MainPagerAdapter(this);
viewPager.setAdapter(pagerAdapter);
}
MainPagerAdapter:
public class MainPagerAdapter extends FragmentStateAdapter
{
public MainPagerAdapter(@NonNull FragmentActivity fragmentActivity)
{
super(fragmentActivity);
}
@NonNull
@Override
public Fragment createFragment(int position)
{
switch (position)
{
case 0:
return new Fragment1();
case 1:
return new Fragment2();
default:
return new Fragment3();
}
}
@Override
public int getItemCount()
{
return 3;
}
}
Отправляю данные из MainActivity так:
Fragment1 fragment1 = new Fragment1();
Bundle bundle = new Bundle();
bundle.putInt("1", 1);
fragment1.setArguments(bundle);
И пытаюсь получить их в Fragment:
Bundle bundle = this.getArguments();
if (bundle != null)
{
int i = bundle.getInt("1", 0);
Log.d(Constants.LOG_TAG, "" + i);
}
Но всегда приходит пустой bundle, потому что фрагмент создаётся только тогда, когда Viewpager перелистывает его.
Как мне отправить данные в Fragment во время создания MainActivity?