Ce problème a fait éclater mon cerveau. J'ai deux Fragments, qui contiennent chacun un WebView. Ces deux fragments sont ensuite placés dans un ViewPagerAdapter, un adaptateur pour mon ViewPager. Ce ViewPager est ensuite configuré avec un TabLayout. Dans le code:Comment accéder à une vue externe à partir de MainActivity
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WebViewFragment webViewFragment1 = WebViewFragment.newInstance(1);
WebViewFragment webViewFragment2 = WebViewFragment.newInstance(2);
WebViewFragment[] fragments = new WebViewFragment[]
{
webViewFragment1,
webViewFragment2
};
String[] fragmentTitles = new String[]
{
"WebView1",
"WebView2"
};
ViewPager viewPager = (ViewPager)findViewById(R.id.viewPager);
ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager(), fragments, fragmentTitles);
viewPager.setAdapter(adapter);
TabLayout tabLayout = (TabLayout)findViewById(R.id.tabLayout);
tabLayout.setupWithViewPager(viewPager);
}
Cette construction me permettent de voir les fragments comme dans WhatsApp par exemple (contrôlé geste).
Néanmoins, je veux contrôler le contenu des WebViews dans WebViewFragments dans MainActivty. Mais je n'ai aucune idée, comment accéder aux WebViews en externe. Les deux ont webviews ID:
webView1 //and
webView2
Quand je les essaie d'accéder à l'aide de la méthode
findViewById(R.id.webView1)
, je reçois nulle comme réponse.
Maintenant, comment puis-je accéder à ces vues à partir de MainActivity?
Le problème est que la boucle onCreate était trop rapide, donc le fragment n'avait pas le temps de gonfler les WebViews. – alexanders916