Вы не можете вызвать метод фрагмента из другой Деятельности / Фрагмента.
У вас есть несколько способов решения этой проблемы
план A (рекомендуется)
Использование EventBus библиотека
1 : создайте EventClass.java
вот так
public class EventClass{
private List<FILL IT WITH YOUR OBJECT> populatedList;
public EventClass(int populatedList) {
this.populatedList= populatedList;
}
public int getPopulatedList() {
return populatedList;
}
}
2 : используйте его
в своей деятельности вместо этого
TabOne one = new TabOne()
one.getData(populatedList)
Используйте EventBus и опубликуйте ваше событие следующим образом
EventBus.getDefault().postSticky(new EventClass(populatedList));
3 Получите данные внутри фрагмента.Добавьте эту функцию к вашему фрагменту
@Subscribe
public void onEvent(EventClass event) {
oneAdapter.setData(event.getPopulatedList());
}
4 не забудьте зарегистрировать и отменить регистрацию вашего EventBus в Fragmet
EventBus.getDefault().register(this);//add in onCreateView
//...
EventBus.getDefault().unregister(this);//add in onDestroyView
план B
Используйте дизайн интерфейса для обратного вызова во фрагменте.Вы должны создать интерфейс для данных изменений, таких как changingDataListener
и implements
, которые есть в вашем фрагменте , и вызвать callBack из Activity
plan C (Дополнительно)
Используйте RxJava с PublishSubject
, вы можете создать Observable для наблюдений новых данных, а когда поступят новые данные, вы можете обновить свой адаптер.
ВЕРЬТЕ МНЕ План А намного проще!