У меня есть активность, которая содержит много фрагментов. В каждом фрагменте у меня есть:
RecyclerView
Кнопка
Я могу перемещаться от фрагмента к другому с помощью viewpager.
Я получаю данные с сервера и передаю их адаптеру, чтобы заполнить окно восстановления, как показано ниже:
adapter = new BrandsAdapter(getContext(), postArray,btValider,viewPager);
где postArray - список строк.
BrandsAdapter.class:
public BrandsAdapter(Context context, ArrayList<Brand> filteredItems,Button btValider,ViewPager viewPager) {
this.context = context;
this.filteredItems = filteredItems;
this.btValider=btValider;
this.viewPager=viewPager;
}
onBindViewHolder
btValider.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
.....
// Get user selected brands and move to another fragment
viewPager.setCurrentItem(3);
}
});
Как я могу создать интерфейс, где я могу добавить экземпляры mybutton и viewpager, чтобы я не передавал их напрямую через BrandsAdapter, потому что, как мы знаем с точки зрения памяти, передача экземпляра viewpager или других представлений через конструктор может создавать циклические зависимости и поэтому утечки памяти.