Feroz Siddiqui
Feroz Siddiqui

Reputation: 4106

Nested Fragment how to make call from inner fragment to outer Fragment (As Parent Child relationship)

I have a Fragment which contains a TextView, EditText, ImageView and Framelayout. In this Framelayout in onCreate() I am replacing the Framelayout with my Fragment using this code:

public class OneFragment extends Fragment {
    private static final String TAG = "OneFragment";
    public static final String DATA = "SalesData";
    private ViewGroup container;
    private LayoutInflater inflater;
    private MyData myData;
    @BindView(R.id.start_task)
    Button start_task;

    @BindView(R.id.easy_flip)
    EasyFlipView easyFlipView;
    @BindView(R.id.frame_container)
    FrameLayout frameLayout;
    BackFragment blankFragment = new BackFragment();


    @Override
    public View onCreateView(LayoutInflater inflater,
                             ViewGroup container, Bundle savedInstanceState) {
        this.container = container;
        this.inflater = inflater;
        return initializeView();
    }

    private View initializeView() {

        View view = inflater.inflate(
                R.layout.view_pager_fragment, container, false);
        ButterKnife.bind(this, view);

        if (getArguments() != null) {
            myData = (MyData)getArguments().getSerializable(DATA);

        }
        final FragmentTransaction ft = getFragmentManager().beginTransaction();

        ft.replace(R.id.frame_container, blankFragment, "NewFragmentTag");
        ft.commit();

        Button back_task =blankFragment.getView().findViewById(R.id.back_task);
        back_task.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                easyFlipView.flipTheView();
            }
        });
        start_task.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                easyFlipView.flipTheView();
            }
        });


            return view;
    }

    public void flipView(){
        easyFlipView.flipTheView();
    }
}

Right now I am getting a RuntimeExpcetion which say view from BlankFragment was not found. This BlankFragment has a button on click of that i need to call flipTheView(). How should i do it.

Upvotes: 0

Views: 86

Answers (1)

Mayurkumar Nevase
Mayurkumar Nevase

Reputation: 174

Create callback Interface and implement it in OneFragment class and call callback's method from onclick listener of BackFragment

Upvotes: 1

Related Questions