Страница 1 из 1

создаю свой класс ViewPager перехват onPageSelected

Добавлено: 20 июн 2016, 09:32
KleverinD
Господа помогите разобраться, я создаю свой класс, наследуюсь от ViewPager и хочу перехватывать событие onPageSelected

[syntax=java]
public class class_MyViewPager extends ViewPager implements ViewPager.OnPageChangeListener
{
...

@Override
public void onPageSelected(int position)
{
Log.d(TAG, " Page changed, current : " + getCurrentItem() + " (" + position + ")");
}

...
}
[/syntax]

эта реализация не работает, в логе при смене страницы запись не появляется, в чем ошибка?

Re: создаю свой класс ViewPager перехват onPageSelected

Добавлено: 20 июн 2016, 15:27
ANdriy123456
возможно вы не зарегестрировали слушателя для смены страниц
pager.addOnPageChangeListener(this);

и мочему class_MyViewPager - с маленькой буквы?

Re: создаю свой класс ViewPager перехват onPageSelected

Добавлено: 21 июн 2016, 09:21
KleverinD
спасибо! можно ведь так

[syntax=java]
public class class_viewpager extends ViewPager
{
... в конструкторах класса
this.addOnPageChangeListener(new ViewPager.OnPageChangeListener()
{
@Override
public void onPageSelected(int position)
{
Log.d(TAG, " Page changed (in class) current : " + position);
}

@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels)
{

}

@Override
public void onPageScrollStateChanged(int state)
{

}
});
...
}
[/syntax]

правда удаление обработчика (clearOnPageChangeListeners) придется видимо вызвать в коде создавшем экземпляр класса class_viewpager, а не в самом классе. ведь в jav'е вроде как нет деструкторов?

код пишу для себя поэтому все с меленькими буквами, так больше нравится