Вызов методов фрагмента в действии - PullRequest
0 голосов
/ 24 февраля 2020

Я создаю нижнюю навигационную активность в студии android, и она генерирует эти коды для меня

BottomNavigationView navView = findViewById(R.id.nav_view);
AppBarConfiguration appBarConfiguration = new AppBarConfiguration.Builder(
         R.id.navigation_home, R.id.navigation_dashboard, R.id.navigation_notifications)
     .build();
 NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment);
 NavigationUI.setupActionBarWithNavController(this, navController, appBarConfiguration);
 NavigationUI.setupWithNavController(navView, navController);

И у меня есть метод changeAnimation() в одном из моих фрагментов

public class MainFragment extends Fragment {

    private MainViewModel dashboardViewModel;
    private LottieAnimationView animationView;
    private Button changeAnimationButton;

    public View onCreateView(@NonNull LayoutInflater inflater,
                             ViewGroup container, Bundle savedInstanceState) {
        dashboardViewModel =
                ViewModelProviders.of(this).get(MainViewModel.class);
        View root = inflater.inflate(R.layout.fragment_main, container, false);
        animationView = root.findViewById(R.id.MainFragmentAnimationView);
        changeAnimationButton = root.findViewById(R.id.changeAnimationButton);


        return root;
    }


    public void changeAnimation() {
        animationView.setAnimation("emojitwo.json");
        animationView.playAnimation();
    }
}

Я хочу вызвать этот метод из своей деятельности. Как я могу это сделать?

Я попробовал это

ExampleFragment fragment = (ExampleFragment) getFragmentManager().findFragmentById(R.id.example_fragment);
fragment.<specific_function_name>(); 

Но его возвращаемое значение NULL, и я не могу вызвать метод для объекта фрагмента

...