Как вызвать метод в одном фрагменте из другого фрагмента - PullRequest
0 голосов
/ 02 февраля 2019

Я использую фрагмент контейнера (основной), который содержит еще два фрагмента (скажем, A и B), основной фрагмент содержит некоторые методы, которые необходимо вызывать, когда пользователь нажимает кнопку внутри любого из двух фрагментов (A иB).

Я использовал статический метод (а затем вызываю эти методы, создавая объект основного фрагмента), и он работает нормально, но это не лучшая практика, а также снижает производительность мобильного приложения.Кто-то сказал мне использовать интерфейс для вызова метода, но я не знаю, как использовать интерфейс для выполнения моей задачи.код моего основного фрагмента, который нужно вызвать

public void updateEditText(int i) {

    switch (i) {
        case 1:
            bottomSheetBehaviorTeacher.setState(BottomSheetBehavior.STATE_EXPANDED);
            break;
        case 2:
            bottomSheetBehaviorStudent.setState(BottomSheetBehavior.STATE_EXPANDED);
            break;
        case 3:
            bottomSheetBehaviorAdmin.setState(BottomSheetBehavior.STATE_EXPANDED);
            break;


    }

}

, когда пользователь нажимает эти кнопки в фрагменте A

addTeachers.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

          //listener.onInputASent(1);

        }
    });

    addStudents.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            //listener.onInputASent(2);
        }
    });

и во фрагменте B

addAdminbtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            //mainLayoutFragment.BottomSheet_layout_admin();
            //listener.onInputASent(3);
        }
    });
...