Android如何獲取fragment裡的webview控件資源

Android如何獲取fragment裡的webview控件資源,先大致講一下項目的框架,模仿京東分類頁面。左側listview,右側一個fragment內嵌webview。當我在MainActivity的onCreate()方法中獲取webview資源,編譯運行APP一直是崩潰。debug找到瞭原因–空指針異常。仔細分析發現是findviewbyid()方法並沒有獲取到webview這個資源,造成webview是一個null值。由此造成程序的崩潰。

查資料發現是fragment的問題:不能在onCreate函數中獲取控件,以為fragment還沒有start,你可以在onStart函數中獲取

@Override
protected void onStart() {
    super.onStart();
    Bundle b=this.getIntent().getExtras();
    String[] array=b.getStringArray("data");
    webView = (WebView)findViewById(R.id.webView);
    if (array[0].equals("@1005")){
        mPosition = 2;
        listView.setSelection(mPosition);
        webView.loadUrl("https://baidu.html");
    }
}

這樣就可以在MainActivity中順利獲取fragment中的webview資源,並在代碼中動態更改webview的url。

順便解釋一下這行代碼的作用:

mPosition = 2;
listView.setSelection(mPosition);

mPosition是一個全局變量,第二行代碼可以使listview滑動到指定的item位置。

You May Also Like