Java 将onSwipe事件从嵌套的RecyclerView获取到父片段

Java 将onSwipe事件从嵌套的RecyclerView获取到父片段,java,android,android-fragments,android-recyclerview,Java,Android,Android Fragments,Android Recyclerview,我正在开发一个应用程序,其中我的主要活动通过SectionsPageAdapter承载不同的片段。我的问题是关于这些片段中的一个,这些片段大体上看起来像下面的图片: 我的innerRecyclers列出了我希望能够通过滑动删除的不同项目,并让用户通过DialogFragment验证删除。我能够实现刷卡操作,但我很难做到的是在OnItemTouch的OuterRecycler中实现一个侦听器,这样我就可以使用一个接口并将操作发送回片段,片段随后将显示我的DialofRaggment 我的Oute

我正在开发一个应用程序,其中我的主要活动通过SectionsPageAdapter承载不同的片段。我的问题是关于这些片段中的一个,这些片段大体上看起来像下面的图片:

我的innerRecyclers列出了我希望能够通过滑动删除的不同项目,并让用户通过DialogFragment验证删除。我能够实现刷卡操作,但我很难做到的是在OnItemTouch的OuterRecycler中实现一个侦听器,这样我就可以使用一个接口并将操作发送回片段,片段随后将显示我的DialofRaggment

我的OuterRecycler当前的代码如下所示:


公共类OuterRecyclerAdapter扩展了RecyclerView.Adapter{
私有最终上下文mContext;
私有最终字符串多行文字;
私有最终ArrayList mDataArrayList;
OuterRecyclerAdapter(上下文上下文、ArrayList DataArrayList、字符串文本){
mContext=上下文;
mDataArrayList=RecyclerArrayList类型;
多行文字=文本;
}
@非空
@凌驾
public OuterRecyclerAdapter.InsiderRecyclerHolder onCreateViewHolder(@NonNull ViewGroup父级,int viewType){
LayoutFlater myInflater=LayoutFlater.from(mContext);
查看myOwnView=myInflater.inflate(R.layout.outer\u recycler,parent,false);
返回新的OuterRecyclerAdapter.InsiderRecyclerHolder(myOwnView);
}
@凌驾
BindViewHolder上的公共无效(@NonNull OuterRecyclerAdapter.insiderRecyclerHolder holder,int位置){
MainViewArrayListMasterList currentItem=mDataArrayList.get(位置);
holder.CardTitle.setText(String.valueOf(currentItem.getmYear());
LinearLayoutManager mllayoutmanager=新的LinearLayoutManager(mContext,LinearLayoutManager.VERTICAL,false);
holder.CardRecycler.setLayoutManager(MLLayoutManager);
InnerRecyclerAdapter historyInnerView_Adapter=新的InnerRecyclerAdapter(mContext,currentItem.getmArrayListStored(),mText);
新的ItemTouchHelper(ListHistoryViewSwipped)。attachToRecyclerView(holder.CardRecycler);
支架.卡片回收器.设置适配器(历史视图适配器);
}
@凌驾
public int getItemCount(){
返回mDataArrayList.size();
}
静态类InsideRecyclerHolder扩展了RecyclerView.ViewHolder{
最终文本视图卡片标题;
最终回收者查看卡片回收者;
InsideRecyclerHolder(@NonNull View itemView){
超级(项目视图);
CardTitle=itemView.findViewById(R.id.TitleText);
CardRecycler=itemView.findViewById(R.id.Inside\U Recycler);
}
}
ItemTouchHelper.SimpleCallback ListHistoryViewSwipped=新建ItemTouchHelper.SimpleCallback(0,ItemTouchHelper.RIGHT){
@凌驾
公共布尔onMove(@NonNull RecyclerView RecyclerView,@NonNull RecyclerView.ViewHolder ViewHolder,@NonNull RecyclerView.ViewHolder target){
返回false;
}
@凌驾
公共空间(RecyclerView.ViewHolder ViewHolder,int方向){
}
};
}

OnItemTouchListener是实现这一点的好方法吗?或者我必须创建一个新的回调方法吗?

我实际上通过调用OuterRecycler中的DialogFragment绕过了这个问题:

公共类OuterRecyclerAdapter扩展了RecyclerView.Adapter{
私有最终上下文mContext;
私有最终字符串多行文字;
私有最终ArrayList mDataArrayList;
私人碎片管理器MFFragmentManager;
OuterRecyclerAdapter(上下文上下文、碎片管理器碎片管理器、ArrayList DataArrayList、字符串文本){
mContext=上下文;
MFFragmentManager=碎片管理器;
mDataArrayList=RecyclerArrayList类型;
多行文字=文本;
}
@非空
@凌驾
public OuterRecyclerAdapter.InsiderRecyclerHolder onCreateViewHolder(@NonNull ViewGroup父级,int viewType){
LayoutFlater myInflater=LayoutFlater.from(mContext);
查看myOwnView=myInflater.inflate(R.layout.outer\u recycler,parent,false);
返回新的OuterRecyclerAdapter.InsiderRecyclerHolder(myOwnView);
}
@凌驾
BindViewHolder上的公共无效(@NonNull OuterRecyclerAdapter.insiderRecyclerHolder holder,int位置){
MainViewArrayListMasterList currentItem=mDataArrayList.get(位置);
holder.CardTitle.setText(String.valueOf(currentItem.getmYear());
LinearLayoutManager mllayoutmanager=新的LinearLayoutManager(mContext,LinearLayoutManager.VERTICAL,false);
holder.CardRecycler.setLayoutManager(MLLayoutManager);
InnerRecyclerAdapter historyInnerView_Adapter=新的InnerRecyclerAdapter(mContext,currentItem.getmArrayListStored(),mText);
新建ItemTouchHelper(新建ItemTouchHelper.SimpleCallback(0,ItemTouchHelper.RIGHT){
@凌驾
公共布尔onMove(@NonNull RecyclerView RecyclerView,@NonNull RecyclerView.ViewHolder ViewHolder,@NonNull RecyclerView.ViewHolder target){
返回false;
}
@凌驾
公共void onsweed(@NonNull RecyclerView.ViewHolder ViewHolder,int-direction){
openMyDialog(currentItem.getmArrayListStored().get(viewHolder.getAdapterPosition());
}
}).attachToRecyclerView(持卡人、卡片回收商);
支架.卡片回收器.设置适配器(历史视图适配器);