【问题标题】:onBackPressed() in an RecyclerView Adapter, onClickListener back to fragmentRecyclerView 适配器中的 onBackPressed(),onClickListener 返回片段
【发布时间】:2021-02-04 12:58:03
【问题描述】:

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

public class MyViewHolder extends 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.
        }
      });

【问题讨论】:

  • 发布一些代码,以便其他人可以看到并帮助您。
  • 公共类 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) { // 这个 onClick 不接受 onBackPressed() 或 popBackStack(),但是我需要把它放到上一页,这是一个片段。} });
  • 编辑问题以添加代码而不是粘贴在评论中:-)
  • 您必须将上下文传递给适配器。然后你可以从上下文中获取片段管理器。
  • 这似乎不起作用,我只需要 onBackPressed() 工作但是当使用 super.onBackPressed() 实现该方法时,它显示为好像它没有被识别

标签: java android android-studio android-recyclerview listadapter


【解决方案1】:

使用getFragmentManager().popBackStack()方法

【讨论】:

  • 这个方法好像不行;这个onClick是在RecyclerView的Adapter中实现的
猜你喜欢
  • 1970-01-01
  • 2021-05-10
  • 1970-01-01
  • 2021-12-21
  • 2022-01-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多