如何在 Recyclerview Item Click 上打开新片段?
Posted
技术标签:
【中文标题】如何在 Recyclerview Item Click 上打开新片段?【英文标题】:How to open new fragment on Recyclerview Item Click? 【发布时间】:2020-07-29 07:02:00 【问题描述】:我在片段中使用回收站视图。现在我想在回收站视图项目点击上打开一个新片段。我在我的回收器视图适配器中使用了以下代码。请解决我的问题。
public void onBindViewHolder(@NonNull MyViewHolder holder, final int position)
holder.tv_name.setText(mData.get(position).getName());
holder.img.setImageResource(mData.get(position).getPhoto());
holder.itemView.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View v)
AppCompatActivity activity = (AppCompatActivity) v.getContext();
MiscellaneousFragment miscellaneousfragment = new MiscellaneousFragment();
activity.getSupportFragmentManager().beginTransaction().replace(R.id.linerr, MiscellaneousFragment).addToBackStack(null).commit();
);
但是我在 Logcat 中遇到了这个错误。
java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“java.lang.Class java.lang.Object.getClass()” 在 androidx.fragment.app.FragmentTransaction.doAddOp.
【问题讨论】:
【参考方案1】:holder.itemView.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View v)
MiscellaneousFragment miscellaneousfragment = new MiscellaneousFragment();
FragmentManager fragmentManager =currentfragment.getFragmentManager()
FragmentTransaction fragmentTransaction=fragmentManager.beginTransaction()
fragmentTransaction.add(R.id.linerr, miscellaneousfragment)
fragmentTransaction.addToBackStack(null)
fragmentTransaction.commit()
);
【讨论】:
以上是关于如何在 Recyclerview Item Click 上打开新片段?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Recyclerview Item Click 上打开新片段?
如何在 RecyclerView 的 CardView 中实现对 Item Click 的操作以显示结果
Android教程2020 - RecyclerView显示多种item