如何解决RecyclerView 适配器中的 onBackPressed()
我正在为 RecyclerView 创建一个适配器;当前正在为 RecyclerView 中的项目创建一个 onClickListener;我希望回到一个我似乎无法做到的片段,因此我尝试在方法中添加 onBackPressed() 和 super.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.
}
});
解决方法
您需要将 OnClickListener(或自定义回调接口)传递给适配器,并将其传递给每个 ViewHolder。一旦 viewholder onClick 被调用,你就会调用传递的监听器,然后它会冒泡到你创建适配器的 Fragment/Activity。
一个很好的例子可以在这个答案中找到:https://stackoverflow.com/a/28304164/180538
当然你可以在这个传递的 onClickListener 或任何你想在那里执行的代码中调用 onBackPressed()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。