android - 调用方法在对应的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;
解决方案
推荐阅读
- java - Firebase 存储非法状态异常:期望文件恢复
- android - AndroidRuntimeException: android.webkit.WebViewFactory$MissingWebViewPackageException: 找不到捐赠者包:com.android.chrome
- javascript - 在点击事件中删除输入文件的特定索引
- json - javax.ws.rs.core.response 实体不招待@JsonProperty
- python - Tensorflow:如何在具有不同批量大小的估计器中使用 RNN 初始状态进行训练和测试?
- c# - 获取一个集合的所有唯一排列,其中包含 2 个带限制的不同字符
- r - Dataframe R,每隔一行添加一次
- wordpress - 如何从 wordpress.com 下载网站的代码文件?
- python - 在熊猫中将 Column1 值转换为标题,将 column2 转换为其值
- c++ - 将 wchar_t* 写入文件 - 仅适用于某些字符