#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.