首页 > 解决方案 > 调用方法在对应的Item click In a RecyclerView

问题描述

当用户在 recyclerview 中单击 item1 时如何调用 cs() 方法,以及当用户在 recyclerview 中单击 item2 时如何调用 addComputerScienceSem() 方法?我希望根据他们的情况调用每种方法。请帮忙

SemesterFragmentViewPager.java

 public SemesterFragmentViewPager() {

}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment_semester, container, false);
    viewPager2 = (ViewPager2) view.findViewById(R.id.viewPager2);
    tabLayout = view.findViewById(R.id.tabLayout);
    adapter = new MyViewPager(getChildFragmentManager(), this.getLifecycle());
    viewPager2.setAdapter(adapter);
    new TabLayoutMediator(tabLayout, viewPager2,
            new TabLayoutMediator.TabConfigurationStrategy() {
                @Override
                public void onConfigureTab(@NonNull TabLayout.Tab tab, int position) {
                    tab.setText("Sem" + (position + 1));
                }
            }).attach();


//        addComputerScienceSem();
//        cs();

    adapter.notifyDataSetChanged();
    return view;
}

public void addComputerScienceSem() {
    adapter.addFrags(Semesters.newInstance(0, 0));
    adapter.addFrags(Semesters.newInstance(0,1));
    adapter.addFrags(Semesters.newInstance(0,2));
    adapter.addFrags(Semesters.newInstance(0,3));
}
public void cs(){
    adapter.addFrags(Semesters.newInstance(0,4));
    adapter.addFrags(Semesters.newInstance(0,5));
}

}

我想在下面实现的是,当情况为 0时,我应该打电话cs() method from SemesterFragmentViewPager.java,但为什么不工作

部门RVAdapter.java

 public MyViewHolder(@NonNull View itemView) {
        super(itemView);
        imgDepLogo = itemView.findViewById(R.id.imgDeptLogo);
        tvDepName = itemView.findViewById(R.id.tvDepName);
        tvDepName.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
               clickInterface.onItemClickListener(getLayoutPosition());
             switch (getAdapterPosition()){
                   
                    case 0:
                                                  Objects.requireNonNull(departmentFragment.getActivity()).getSupportFragmentManager()
                              .beginTransaction()
                              .replace(R.id.frameLayout,new SemesterFragmentViewPager().cs())// it couldnt work
                              .addToBackStack(null).
                              commit();
                        break;

案例为 1时,我应该打电话addComputerScienceSem() method from SemesterFragmentViewPager.java,但不工作

case 1:
                            Objects.requireNonNull(departmentFragment.getActivity()).getSupportFragmentManager()
                                    .beginTransaction()
                                   // .setCustomAnimations(R.anim.slide_in_left,R.anim.exit_to_left,R.anim.enter_from_right,R.anim.exit_to_left)
                                    .replace(R.id.frameLayout, new SemesterFragmentViewPager().addComputerScienceSem())// it couldnt work too
                                    .addToBackStack(null).
                                    commit();
                    break;

标签: androidandroid-recyclerview

解决方案


推荐阅读