Как получить обратный вызов от дочернего адаптера к Actitvity при использовании вложенного recyclerView внутри фрагмента? - PullRequest
0 голосов
/ 26 апреля 2020

У меня есть вложенный 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.

...