[英]Calling a method in a fragment in a FragmentStatePagerAdapter from the activity that created it
[英]How to listen to FragmentStatePagerAdapter setPrimaryItem from a Activity
我剛剛開始編碼android,並且在一個片段中有一個ViewPager,我想做的是如何從活動中偵聽ViewPagerAdapter的setPrimaryItem事件,以便可以將數據從適配器傳遞到活動。
我嘗試使用接口,但是我不知道如何在適配器內部進行活動。
這是基本的觀察者模式,您會遇到很多。 我對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
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.