У меня был такой же опыт, как этот. Вот как я справился с этим:
1, Передайте ваши данные из активности RestaurantList в вашу активность в списке продуктов с помощью intent.putExtra ();
Intent foodlist = new Intent(RestaurantList.this, Foodlist.class);
foodlist.putExtra("restaurantid", documentSnapshot.getId());
startActivity(foodlist);
2, получите значение с помощью getIntent () из списка Foodlist;
String id = getIntent().getStringExtra("restaurantid");
3, Передайте данные в адаптер, где вы инициализируете адаптер. (что-то вроде этого:)
YourAdapter adapter = new YourAdapter(getSupportFragmentManager(), tabLayout.getTabCount(),id);
4, получить данные в конструкторе адаптера (необходимо создать глобальную переменную и заполнить ее в конструкторе), создать пакет в методе getItem () и передать данные к нему и установить аргументы для фрагмента (как в коде ниже)
public class YourAdapter extends FragmentStatePagerAdapter {
int mNumOfTabs;
String id;
public AdapterPagerShift(FragmentManager fm, int NumOfTabs, String id) {
super(fm);
this.mNumOfTabs = NumOfTabs;
this.id = id;
}
@Override
public Fragment getItem(int position) {
Bundle bundle = new Bundle();
bundle.putString("restaurantid", documentSnapshot.getId());
switch (position) {
case 0:
MainsFragment main = new MainsFragment();
main.setArguments(bundle);
return main;
case 1:
//...
case 2:
//...
default:
return null;
}
}
@Override
public int getCount() {
return mNumOfTabs;
}
}
5, Получить данные, используя код ниже в вашем классе MainsFragment:
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
String id = getArguments().getString("restaurantid");
}
Надеюсь, это поможет!