【发布时间】: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