【发布时间】:2020-08-02 12:47:12
【问题描述】:
我正在尝试将数据从 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);
并尝试在 Fragment1 中获取它:
Bundle bundle = this.getArguments();
if (bundle != null)
{
int i = bundle.getInt("1", 0);
Log.d(Constants.LOG_TAG, "" + i);
}
但它总是带有一个空包,因为片段是在 viewpager 滚动浏览它时创建的。
创建 MainActivity 时如何向 Fragment 发送数据?
【问题讨论】:
标签: android android-fragments android-viewpager2