0

この問題は私の脳を爆発させました。私はそれぞれWebViewを含む2つのフラグメントを持っています。これらの2つのフラグメントは、ViewPagerのアダプタであるViewPagerAdapterに配置されます。この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でWebViewのコンテンツを制御したいとします。しかし、私は外部からWebViewにアクセスする方法はわかりません。私は

findViewById(R.id.webView1) 

方法の助けを借りてアクセスするためにそれらを試してみてください、私は応答としてnullを取得する場合

webView1 //and 
webView2 

:2 webviewsはIDを持っています。

ここで、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ループが速すぎるため、フラグメントにWebViewを拡張する時間がないことです。 – alexanders916

関連する問題