Java 如何从活动中侦听FragmentStatePagerAdapter setPrimaryItem
我刚开始编写android,我在一个片段中有一个ViewPager,我想做的是如何从它的活动中侦听ViewPagerAdapter的setPrimaryItem事件,这样我就可以将数据从适配器传递到活动Java 如何从活动中侦听FragmentStatePagerAdapter setPrimaryItem,java,android,android-studio,Java,Android,Android Studio,我刚开始编写android,我在一个片段中有一个ViewPager,我想做的是如何从它的活动中侦听ViewPagerAdapter的setPrimaryItem事件,这样我就可以将数据从适配器传递到活动 我尝试使用接口,但我不知道如何在适配器中获取活动。这是基本的观察者模式,您会经常遇到它。我这样做是为了FragmentPagerAdapter,FragmentStatePagerAdapter应该也能工作 public abstract class ObservableFragmentPage
我尝试使用接口,但我不知道如何在适配器中获取活动。这是基本的观察者模式,您会经常遇到它。我这样做是为了
FragmentPagerAdapter
,FragmentStatePagerAdapter
应该也能工作
public abstract class ObservableFragmentPagerAdapter extends FragmentPagerAdapter {
private Fragment mCurrentFragment = null;
private OnPrimaryItemChangedListener mPrimaryItemListener = null;
public ObservableFragmentPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public void setPrimaryItem(ViewGroup container, int position, Object object) {
super.setPrimaryItem(container, position, object);
if (mCurrentFragment != object) {
Fragment newFragment = (Fragment) object;
if (mPrimaryItemListener != null) {
mPrimaryItemListener.onPrimaryItemChanged(mCurrentFragment, newFragment);
}
mCurrentFragment = newFragment;
}
}
public void setOnPrimaryItemChangedListener(OnPrimaryItemChangedListener listener) {
mPrimaryItemListener = listener;
}
public interface OnPrimaryItemChangedListener {
void onPrimaryItemChanged(Fragment oldFragment, Fragment newFragment);
}
}
订阅的工作方式与设置
OnClickListener
的工作方式相同。我尝试使用接口,但由于某些原因,它在适配器中不起作用。你能发布代码吗?我的意思是它不起作用,因为我无法从那里获取活动,或者我不知道如何在适配器中实现接口。谢谢你,你救了我一天,让我不知道如何使用接口。回答得好!如果您希望在片段本身中了解它,则会自动调用setUserVisibleHint。