Fragmentネスト子fragment親fragmentコントロールを取得する

1753 ワード

1.コールバックインタフェースICallBackListenerを新規作成します.ここでは1つのパラメータだけでいいです.必要なパラメータがあればカスタマイズできます.
public interface ICallBackListener{
    void onItemClick(View view);
}

2.親fragmentでインタフェース変数を定義する
    public static ICallBackListener listener;

    public static void setCallBackListener(ICallBackListener listener1) {
        listener= listener1;
    }

3.ここで必要なのは、親fragmentのコントロールのクリックイベントを取得するため、親fragmentにクリックイベントを追加することです.
@OnClick(R.id.callBackChildFragment)
    public void callBackChildFragment(View view) {
        if(listener!=null)
            listener.onItemClick(view, 0);
}

4.このインタフェースをサブfragmentで実装する(MallFragmentは親fragment)
MallFragment.setCallBackListener(new ICallBackListener () {
            @Override
            public void onItemClick(View view) {
                Log.e("tag", "  fragment      fragment          ");
            }
        });