【问题标题】:onBackPressed() in RecyclerView AdapterRecyclerView 适配器中的 onBackPressed()
【发布时间】:2021-05-10 19:39:09
【问题描述】:

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

代码如下:

公共类 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.
    }
  });

【问题讨论】:

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


    【解决方案1】:

    您需要将 OnClickListener(或自定义回调接口)传递给 Adapter,并将其传递给每个 ViewHolder。一旦调用了 viewholder onClick,您就调用传递的侦听器,然后它会冒泡到您创建适配器的 Fragment/Activity。

    可以在此答案中找到一个很好的示例:https://stackoverflow.com/a/28304164/180538

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

    【讨论】:

    • 终于搞定了,非常感谢您的帮助!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-08
    • 2018-11-23
    • 2017-09-23
    • 1970-01-01
    相关资源
    最近更新 更多