В основном фрагменте у меня есть viewpager, поэтому я создал адаптер просмотра пейджеров:
public class ParkingViewPagerAdapter extends FragmentPagerAdapter {
private String cookie;
private final String taskInfoString;
public ParkingViewPagerAdapter(FragmentManager fm,String cookie, String taskInfoString) {
super(fm);
this.cookie = cookie;
this.taskInfoString = taskInfoString;
}
@Override
public Fragment getItem(int i) {
switch (i) {
case 0:
return Fragment1.newInstance(cookie,taskInfoString);
case 1:
return Fragment2.newInstance(cookie,taskInfoString);
}
return null;
}
Во фрагменте 1 я создал обратный вызов и установил установщик для обратного вызова инициализации:
public interface Callback{
void onRowClicked(Object item);
}
public void setCallback(Callback callback) {
this.callback = callback;
}
Сейчас восновной фрагмент после созданного адаптера я получил фрагмент1 следующим образом:
Fragment1 fragment1 =
(Fragment1) parkingViewPagerAdapter.getItem(0);
fragment1.setCallback(item -> {
Log.i("", "loggggg: ");
});
В режиме отладки инициализируется первая переменная обратного вызова, но в fragmet1 у меня появляется представление списка, когда я нажимаю на свой элемент:
listAdapter.setListener(item ->{
callback.onRowClicked(item);
}}
callback
равно нулю !!!Почему обратный вызов равен нулю? Если раньше он не был нулевым.
parkingViewPagerAdapter.getItem (0) возвращает новый фрагмент?