У меня есть вложенный recycleView, как в Google PlayStore. Я использовал Фрагмент. Из ParentAdapter я инициализировал ChildAdapter следующим образом:
ParentAdapter. java
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
...
RecipeHolder recipeHolder = (RecipeHolder)holder;
...
ChildAdapter childAdapter = new ChildAdapter(parentModel.getChildList());
recipeHolder.rcvChild.setLayoutManager(layoutManager);
recipeHolder.rcvChild.setAdapter(childAdapter);
...
}
ChildAdapter. java
public class ChildAdapter extends RecyclerView.Adapter<ChildAdapter.ViewHolder> {
private List<ChildModel> childList;
public ChildAdapter(List<ChildModel> childList) {
this.childList = childList;
}
...
}
И я назвал этот родительский адаптер из этого фрагмента:
HomeFrag. java
public class HomeFrag extends Fragment {
private List<Object> parentList;
public HomeFrag(List<Object> parentList) {
this.parentList = parentList;
}
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.frag_home, container, false);
RecyclerView rcvParent = view.findViewById(R.id.rcvParent);
rcvParent.setLayoutManager(new LinearLayoutManager(getContext()));
ParentAdapter parentAdapter = new ParentAdapter(parentList);
rcvParent.setAdapter(parentAdapter);
return view;
}
}
Теперь я могу легко общаться между фрагментом и действием используя прослушиватель обратного вызова интерфейса, но мне очень трудно получить ответ на щелчок элемента из ChildAdapter в Activity.