лучший способ уведомить внутренний (вложенный) адаптер recyclerview?

#java #android #android-layout #android-recyclerview #android-adapter

#java #Android #android-макет #android-recyclerview #android-адаптер

Вопрос:

У меня есть a Activity RecyclerView и a RecyclerView.Adapter (назовем его adapter1). внутри этого Adapter у меня есть еще RecyclerView один и еще Adapter (adapter2). Что я хочу сделать, так это то, что может быть передана некоторая информация onActivityResult и должна быть передана внутреннему адаптеру2. Что я делаю, так это создаю метод в обоих адаптерах и связываю их от activity вплоть до adapter2. Я чувствую, что этот способ немного глуп. Есть ли какой-либо другой способ добиться этого? Я пробовал EventBus, но, похоже, я не могу подписаться на метод в адаптере.

Спасибо!

Отредактировано

все работает нормально. Я просто ищу лучшее решение, если оно есть. полный код будет слишком большим для публикации, поэтому я просто опубликую здесь некоторый фрагмент.

 Activity A {
    Adapter adapter1;

    onActivityResult() {
        adapter1.onEvent();
    }
}

Adapter1 {
    Adapter adapter2;

    public void onEvent() {
        adapter2.onEvent();
    }
}

Adapter2 {
    public void onEvent() {
        notifyDataSetChanged();
    }
}
  

да, info обновит списки.

Комментарии:

1. Покажите нам, что именно вы делаете, что не работает? Должны ли передаваемые данные в adapter2 обновлять его строки?

2. вопрос обновлен. помогает ли это прояснить, что я пытаюсь сделать?

3. мне кажется, все в порядке.

4. да, это работает. но поскольку Activity не имеет ссылки на Adapter2, он должен полагаться на Adapter1. я чувствую, что может быть другой способ упростить задачу. например, передать ссылку на activity в adapter2 и переопределить onActivityResult() adapter2? Я не знаю. просто наличие activity-> adapter1-> adapter2 заставляет меня чувствовать, что может быть лучший способ написать это

5. Вам удалось заставить это работать? У меня возникают аналогичные проблемы с уведомлением об изменении данных для вложенного адаптера RecyclerView.