Вложенный фрагмент, как сделать вызов из внутреннего фрагмента во внешний фрагмент (как отношения родитель-потомок) - PullRequest
0 голосов
/ 17 января 2019

У меня есть Fragment, который содержит TextView, EditText, ImageView и Framelayout. В этом Framelayout в onCreate() я заменяю Framelayout на мой Fragment, используя этот код:

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();
    }
}

Сейчас я получаю RuntimeExpcetion, в котором говорится, что вид из BlankFragment не найден. У этого BlankFragment есть кнопка, по которой мне нужно позвонить flipTheView(). Как мне это сделать.

1 Ответ

0 голосов
/ 17 января 2019

Создать интерфейс обратного вызова и реализовать его в классе OneFragment и вызвать метод обратного вызова из прослушивателя onclick объекта BackFragment

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...