Android studio 从具有ViewPager2的片段中的片段调用方法

Android studio 从具有ViewPager2的片段中的片段调用方法,android-studio,android-fragments,android-viewpager2,Android Studio,Android Fragments,Android Viewpager2,我有这两种方法getCsList(int-position)和getStaList(int-position)学期。java并且每种方法都必须在Viewpager2中填充4个片段。请问如何调用这些方法。这是我下面的。谢谢 可视寻呼机适配器 MyViewPager.java public class MyViewPager extends FragmentStateAdapter { List<Fragment> fragmentList = new ArrayList<>

我有这两种方法getCsList(int-position)getStaList(int-position)
学期。java
并且每种方法都必须在Viewpager2中填充
4个片段。请问如何调用这些方法。这是我下面的。谢谢

可视寻呼机适配器 MyViewPager.java

public class MyViewPager extends FragmentStateAdapter {
List<Fragment> fragmentList = new ArrayList<>();

public MyViewPager(@NonNull FragmentManager fragmentManager, @NonNull Lifecycle lifecycle) {
    super(fragmentManager, lifecycle);
}

@NonNull
@Override
public Fragment createFragment(int position) {
    return fragmentList.get(position);
}

@Override
public int getItemCount() {
    return fragmentList.size();
}

public void addFrags(Fragment fragment) {
    fragmentList.add(fragment);
}
}
保存两个方法(每个方法都包含要填充的数据)的片段在viewpager中填充为4个片段,我如何调用这些方法:getCsList(int位置)和getStaList(int位置)fromsemestrsfragment.java??

Serm.java

public class Semesters extends Fragment {
List mData;
RVFragment adapter;
RecyclerView recyclerView;

public Semesters() {
}

public static Semesters newInstance(int index, int position) {
    Semesters fragment = new Semesters();
    Bundle args = new Bundle();
    args.putInt("index", index);
    args.putInt("position", position);
    fragment.setArguments(args);
    return fragment;
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment, container, false);
    recyclerView = view.findViewById(R.id.recyclerView);
    LinearLayoutManager layoutManager = new LinearLayoutManager(getContext());
    recyclerView.setLayoutManager(layoutManager);
    adapter = new RVFragment(getContext(), mData);
    if (getArguments().getInt("index", 0) == 0) {
        mData = getCSList(getArguments().getInt("position", 0));
    } else if (getArguments().getInt("index", 0) == 1) {
        mData = getSTAList(getArguments().getInt("position", 0));
    }
    recyclerView.setAdapter(adapter);
    return view;
}

private List getCSList(int position) {
    List list = new ArrayList<>();
    if (position == 0) { //fragment one inside viewpager whenever item1 is clicked from the recyclerView 
        list.add(new SemesterModelClass("intro. to comp", "com101", "3"));
        list.add(new SemesterModelClass("digital electonics", "com112", "3"));
        list.add(new SemesterModelClass("intro to programming", "com113", "4"));
    } else if (position == 1) { //fragment two inside viewpager whenever item1 is clicked from the recyclerView 
        list.add(new SemesterModelClass("sem2", "com111", "3"));
        list.add(new SemesterModelClass("sem2", "com222", "5"));
        list.add(new SemesterModelClass("sem2", "com121", "4"));
    } else if (position == 2) { //fragment three inside viewpager whenever item1 is clicked from the recyclerView 
        list.add(new SemesterModelClass("sem3", "com111", "3"));
        list.add(new SemesterModelClass("sem3", "com222", "5"));
        list.add(new SemesterModelClass("sem3", "com121", "4"));
    } else if (position == 3) { //fragment four inside viewpager whenever item1 is clicked from the recyclerView 
        list.add(new SemesterModelClass("sem4", "com111", "3"));
        list.add(new SemesterModelClass("sem4", "com222", "5"));
        list.add(new SemesterModelClass("sem4", "com121", "4"));
    }
    return list;
}

private List getSTAList(int position) {
    List list = new ArrayList<>();
    if (position == 4) { //fragment one inside viewpager whenever item2 is clicked from the recyclerView 
        list.add(new SemesterModelClass("probability", "STA 111", "3"));
        list.add(new SemesterModelClass("algebra", "STA 112", "4"));
        list.add(new SemesterModelClass("logic", "STA 113", "3"));
        list.add(new SemesterModelClass("geometri func", "STA 114", "4"));
    } else if (position == 5) { //fragment two inside viewpager whenever item2 is clicked from the recyclerView 
        list.add(new SemesterModelClass("set theory", "STA 111", "3"));
        list.add(new SemesterModelClass("dedvwvdv", "STA 112", "4"));
        list.add(new SemesterModelClass("fbcfvdv", "STA 113", "3"));
        list.add(new SemesterModelClass("cvsvsdvs", "STA 114", "4"));
    } else if (position == 6) { //fragment three inside viewpager whenever item2 is clicked from the recyclerView 
        list.add(new SemesterModelClass("geo", "STA 111", "3"));
        list.add(new SemesterModelClass("semdvbv3", "STA 112", "4"));
        list.add(new SemesterModelClass("dedgsedv", "STA 113", "3"));
        list.add(new SemesterModelClass("frgs", "STA 114", "4"));
    } else if (position == 7) { //fragment four inside viewpager whenever item2 is clicked from the recyclerView 
        list.add(new SemesterModelClass("log", "STA 111", "3"));
        list.add(new SemesterModelClass("sem4fff", "STA 112", "4"));
        list.add(new SemesterModelClass("sem4gtgg", "STA 113", "3"));
        list.add(new SemesterModelClass("sem4uku", "STA 114", "4"));
    }
    return list;
}
}
公共课学期{
列出mData;
裂片接合器;
回收视图回收视图;
公共学期(){
}
公共静态学期newInstance(int索引,int位置){
学期片段=新学期();
Bundle args=新Bundle();
参数putInt(“索引”,索引);
参数putInt(“位置”,位置);
fragment.setArguments(args);
返回片段;
}
@凌驾
CreateView上的公共视图(布局、充气机、视图组容器、捆绑包保存状态){
视图=充气机。充气(R.layout.fragment,container,false);
recyclerView=view.findViewById(R.id.recyclerView);
LinearLayoutManager布局管理器=新的LinearLayoutManager(getContext());
recyclerView.setLayoutManager(layoutManager);
适配器=新的RVFragment(getContext(),mData);
if(getArguments().getInt(“index”,0)=0){
mData=getCSList(getArguments().getInt(“位置”,0));
}else if(getArguments().getInt(“index”,0)==1){
mData=getSTAList(getArguments().getInt(“位置”,0));
}
recyclerView.setAdapter(适配器);
返回视图;
}
私有列表getCSList(int位置){
列表=新的ArrayList();
如果(position==0){//每当从recyclerView中单击item1时,都会在viewpager中生成一个片段
添加(新的SemesterModelClass(“comp简介”、“com101”、“3”);
增加(新的SemesterModelClass(“数字电子”、“com112”、“3”);
添加(新的SemesterModelClass(“编程简介”、“com113”、“4”);
}else如果(position==1){//每当从recyclerView中单击item1时,viewpager中的片段2
添加(新的SemesterModelClass(“sem2”、“com111”、“3”);
添加(新的SemesterModelClass(“sem2”、“com222”、“5”);
添加(新的SemesterModelClass(“sem2”、“com121”、“4”);
}else如果(position==2){//每当从recyclerView中单击item1时,viewpager内的片段3
添加(新的SemesterModelClass(“sem3”、“com111”、“3”);
添加(新的SemesterModelClass(“sem3”、“com222”、“5”);
添加(新的SemesterModelClass(“sem3”、“com121”、“4”);
}else如果(position==3){//每当从recyclerView中单击item1时,viewpager内的片段4
添加(新的SemesterModelClass(“sem4”、“com111”、“3”);
添加(新的SemesterModelClass(“sem4”、“com222”、“5”);
添加(新的SemesterModelClass(“sem4”、“com121”、“4”);
}
退货清单;
}
私有列表getSTAList(内部位置){
列表=新的ArrayList();
如果(position==4){//每当从recyclerView中单击item2时,都会在viewpager中生成一个片段
添加(新的SemesterModelClass(“概率”、“STA 111”、“3”);
添加(新的SemesterModelClass(“代数”、“STA 112”、“4”);
添加(新的SemesterModelClass(“逻辑”、“STA 113”、“3”);
添加(新的SemesterModelClass(“Geometric func”、“STA 114”、“4”);
}else如果(position==5){//每当从recyclerView中单击item2时,viewpager内的片段2
添加(新的SemesterModelClass(“集合论”、“STA 111”、“3”);
添加(新的SemesterModelClass(“dedvwvdv”、“STA 112”、“4”);
添加(新的SemesterModelClass(“fbcfvdv”、“STA 113”、“3”);
添加(新的SemesterModelClass(“cvsvsdvs”、“STA 114”、“4”);
}else如果(position==6){//每当从recyclerView中单击item2时,viewpager内的片段3
添加(新的SemesterModelClass(“geo”、“STA 111”、“3”);
添加(新的SemesterModelClass(“semdvbv3”、“STA 112”、“4”);
添加(新的SemesterModelClass(“dedgsedv”、“STA 113”、“3”);
增加(新的SemesterModelClass(“frgs”、“STA 114”、“4”);
}else如果(position==7){//每当从recyclerView中单击item2时,viewpager内的片段4
添加(新的SemesterModelClass(“日志”、“STA 111”、“3”);
添加(新的SemesterModelClass(“sem4fff”、“STA 112”、“4”);
添加(新的SemesterModelClass(“sem4gtgg”、“STA 113”、“3”);
添加(新的SemesterModelClass(“sem4uku”、“STA 114”、“4”);
}
退货清单;
}
}
public class Semesters extends Fragment {
List mData;
RVFragment adapter;
RecyclerView recyclerView;

public Semesters() {
}

public static Semesters newInstance(int index, int position) {
    Semesters fragment = new Semesters();
    Bundle args = new Bundle();
    args.putInt("index", index);
    args.putInt("position", position);
    fragment.setArguments(args);
    return fragment;
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment, container, false);
    recyclerView = view.findViewById(R.id.recyclerView);
    LinearLayoutManager layoutManager = new LinearLayoutManager(getContext());
    recyclerView.setLayoutManager(layoutManager);
    adapter = new RVFragment(getContext(), mData);
    if (getArguments().getInt("index", 0) == 0) {
        mData = getCSList(getArguments().getInt("position", 0));
    } else if (getArguments().getInt("index", 0) == 1) {
        mData = getSTAList(getArguments().getInt("position", 0));
    }
    recyclerView.setAdapter(adapter);
    return view;
}

private List getCSList(int position) {
    List list = new ArrayList<>();
    if (position == 0) { //fragment one inside viewpager whenever item1 is clicked from the recyclerView 
        list.add(new SemesterModelClass("intro. to comp", "com101", "3"));
        list.add(new SemesterModelClass("digital electonics", "com112", "3"));
        list.add(new SemesterModelClass("intro to programming", "com113", "4"));
    } else if (position == 1) { //fragment two inside viewpager whenever item1 is clicked from the recyclerView 
        list.add(new SemesterModelClass("sem2", "com111", "3"));
        list.add(new SemesterModelClass("sem2", "com222", "5"));
        list.add(new SemesterModelClass("sem2", "com121", "4"));
    } else if (position == 2) { //fragment three inside viewpager whenever item1 is clicked from the recyclerView 
        list.add(new SemesterModelClass("sem3", "com111", "3"));
        list.add(new SemesterModelClass("sem3", "com222", "5"));
        list.add(new SemesterModelClass("sem3", "com121", "4"));
    } else if (position == 3) { //fragment four inside viewpager whenever item1 is clicked from the recyclerView 
        list.add(new SemesterModelClass("sem4", "com111", "3"));
        list.add(new SemesterModelClass("sem4", "com222", "5"));
        list.add(new SemesterModelClass("sem4", "com121", "4"));
    }
    return list;
}

private List getSTAList(int position) {
    List list = new ArrayList<>();
    if (position == 4) { //fragment one inside viewpager whenever item2 is clicked from the recyclerView 
        list.add(new SemesterModelClass("probability", "STA 111", "3"));
        list.add(new SemesterModelClass("algebra", "STA 112", "4"));
        list.add(new SemesterModelClass("logic", "STA 113", "3"));
        list.add(new SemesterModelClass("geometri func", "STA 114", "4"));
    } else if (position == 5) { //fragment two inside viewpager whenever item2 is clicked from the recyclerView 
        list.add(new SemesterModelClass("set theory", "STA 111", "3"));
        list.add(new SemesterModelClass("dedvwvdv", "STA 112", "4"));
        list.add(new SemesterModelClass("fbcfvdv", "STA 113", "3"));
        list.add(new SemesterModelClass("cvsvsdvs", "STA 114", "4"));
    } else if (position == 6) { //fragment three inside viewpager whenever item2 is clicked from the recyclerView 
        list.add(new SemesterModelClass("geo", "STA 111", "3"));
        list.add(new SemesterModelClass("semdvbv3", "STA 112", "4"));
        list.add(new SemesterModelClass("dedgsedv", "STA 113", "3"));
        list.add(new SemesterModelClass("frgs", "STA 114", "4"));
    } else if (position == 7) { //fragment four inside viewpager whenever item2 is clicked from the recyclerView 
        list.add(new SemesterModelClass("log", "STA 111", "3"));
        list.add(new SemesterModelClass("sem4fff", "STA 112", "4"));
        list.add(new SemesterModelClass("sem4gtgg", "STA 113", "3"));
        list.add(new SemesterModelClass("sem4uku", "STA 114", "4"));
    }
    return list;
}
}