簡體   English   中英

如何從活動中監聽FragmentStatePagerAdapter setPrimaryItem

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM