ActivityとFragmentの通信方式


FragmentとActivity通信


1.インタフェースの方法


最良の方法はインタフェースにほかならない.これにより、修正しない問題を回避することができる.

2.例:


A.インタフェースの定義

public interface OnViewPagerSelected
{
    void onSelected(int position);
}

B.Activityの実装インタフェース
public class FuliQiLinActivity extends AppCompatActivity implements ViewPager.OnPageChangeListener, OnViewPagerSelected
{
    OnViewPagerSelected mOnViewPagerSelected;

    @Override
    public void onAttachFragment(android.support.v4.app.Fragment fragment)
    {
        mOnViewPagerSelected = (OnViewPagerSelected)fragment;
        super.onAttachFragment(fragment);
    }

    /**
     *  ,Fragment-> Activity
     *
     * @param position
     */
    @Override
    public void onSelected(int position)
    {

    }
}

C.Fragmentの実現
public class QiLinFragment extends Fragment implements OnViewPagerSelected
{
    OnViewPagerSelected mOnViewPagerSelected;

    @Override
    public void onAttach(Activity activity)
    {
        mOnViewPagerSelected = (OnViewPagerSelected)activity;
        super.onAttach(activity);
    }

    /**
      *Activity -> Fragment
      */
    @Override
    public void onSelected(int position)
    {
        Log.e("taggg", "" + position);
    }
}

注意:インポートされたパッケージ名の正解性はappである.Fragmentかsupportかv4.support.Fragment