0

這個問題讓我的大腦爆發。我有兩個碎片,每個碎片都包含一個WebView。然後將這兩個片段放置在ViewPagerAdapter中,這是ViewPager的適配器。這個ViewPager然後用TabLayout進行設置。在代碼中:如何從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); 
} 

這個結構讓我查看像例如WhatsApp(手勢控制)中的片段。

儘管如此,我想控制MainActivty中WebViewFragments中的WebViews的內容。但我不知道如何從外部訪問WebViews。這兩個網頁視圖的ID爲:

webView1 //and 
webView2 

當我嘗試將它們與

findViewById(R.id.webView1) 

方法的幫助來訪問,我得到空的響應。

現在,我如何從MainActivity訪問這些視圖?

回答

0

WebViewFragment

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

    public WebView getWebView() { 
     return webView; 
    } 

活動

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

請確保在2個片段充氣和不爲空。

+0

問題是,onCreate循環太快,所以片段沒有時間膨脹WebViews。 – alexanders916