0

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?

Répondre

0

WebViewFragment

private WebView webView; 
    public onViewCreated(....) { 
     webView = view.findViewBy(R.id.webview); 
     .... 
    } 

    public WebView getWebView() { 
     return webView; 
    } 

Activité

WebViewFragment webViewFragment1 = WebViewFragment.newInstance(1); 
    WebView webView = webViewFragment1.getWebView(); 
    webView.... //WebView Stuff 

S'il vous plaît assurez-vous que les 2 fragments sont gonflés et non nul.

+0

Le problème est que la boucle onCreate était trop rapide, donc le fragment n'avait pas le temps de gonfler les WebViews. – alexanders916