RecyclerView 适配器中的 onBackPressed()

onBackPressed() in RecyclerView Adapter

我正在为 RecyclerView 创建适配器;当前正在为 RecyclerView 中的项目创建一个 onClickListener;我想回到一个我似乎做不到的片段,所以我尝试在方法中添加带有 super.onBackPressed 的 onBackPressed() ,因为该片段在上一页上;我已经在 onClickListener 中调用了它,但它似乎不起作用,我有什么办法可以解决这个问题吗?

代码如下:

public class MyViewHolder 扩展 RecyclerView.ViewHolder { TextView text1, text2, text3;

public MyViewHolder(@NonNull View itemView) {
  super(itemView);
  itemView.setOnClickListener(new View.OnClickListener() {
    @Override public void onClick(View v) {
    // This onClick doesn't accept onBackPressed() or popBackStack(), however I need to get this to the previous page which is a fragment.
    }
  });

您需要将 OnClickListener(或自定义回调接口)传递给 Adapter,然后传递给每个 ViewHolder。调用查看器 onClick 后,您将调用传递的侦听器,该侦听器然后冒泡到您创建适配器的 Fragment/Activity。

可以在这个答案中找到一个很好的示例:

当然你可以在这个传递的 onClickListener 中调用 onBackPressed() 或任何你想在那里执行的代码