Llamar a un método de Fragmento desde una Actividad principal

Veo en la Guía de Android Fragments Dev que una “actividad puede llamar a los métodos en un fragmento al adquirir una referencia al Fragmento de FragmentManager, usando findFragmentById() o findFragmentByTag() “.

El ejemplo que sigue muestra cómo obtener una referencia de fragmento, pero no cómo llamar a métodos específicos en el fragmento.

¿Alguien puede dar un ejemplo de cómo hacer esto? Me gustaría llamar a un método específico en un Fragmento de la Actividad principal. Gracias.

no entiendo la pregunta exactamente porque es muy simple:

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

Actualización: para aquellos que están usando Kotlin

 var fragment = supportFragmentManager.findFragmentById(R.id.frameLayoutCW) as WebViewFragment fragment.callAboutUsActivity() 

Si está usando “import android.app.Fragment;” Luego use cualquiera de los siguientes:

1)

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

Donde R.id.example_fragment es más probable que el ID FrameLayout dentro de su diseño xml. O

2)

 ExampleFragment fragment = (ExampleFragment) getFragmentManager().findFragmentByTag(“FragTagName”); fragment.specific_function_name(); 

Donde FragTagName es el nombre que especificó cuando lo hizo:

 TabHost mTabHost.newTabSpec(“FragTagName”) 

Si está utilizando “import android.support.v4.app.Fragment;” Luego use cualquiera de los siguientes:

1)

 ExampleFragment fragment = (ExampleFragment) getSupportFragmentManager().findFragmentById(R.id.example_fragment); fragment.specific_function_name(); 

O

2)

 ExampleFragment fragment = (ExampleFragment) getSupportFragmentManager().findFragmentByTag(“FragTagName”); fragment.specific_function_name(); 

Si está utilizando una biblioteca de soporte, querrá hacer algo como esto:

 FragmentManager manager = getSupportFragmentManager(); Fragment fragment = manager.findFragmentById(R.id.my_fragment); fragment.myMethod(); 
  1. Si no está utilizando un Fragmento de biblioteca de soporte, haga lo siguiente:

((FragmentName) getFragmentManager().findFragmentById(R.id.fragment_id)).methodName();

2. Si está utilizando un Fragmento de biblioteca de soporte, haga lo siguiente:

((FragmentName) getSupportFragmentManager().findFragmentById(R.id.fragment_id)).methodName();

Creo que lo mejor es comprobar si se agrega el fragmento antes de llamar al método en fragmento. Haga algo como esto para evitar una excepción nula.

 ExampleFragment fragment = (ExampleFragment) getFragmentManager().findFragmentById(R.id.example_fragment); if(fragment.isAdded()){ fragment.(); }