Android如何获取fragment里的webview控件资源

来源:互联网 发布:php 获取公网ip 编辑:程序博客网 时间:2024/05/20 01:08

先大致讲一下项目的框架,模仿京东分类页面。左侧listview,右侧一个fragment内嵌webview。当我在MainActivity的onCreate()方法中获取webview资源,编译运行APP一直是崩溃。debug找到了原因--空指针异常。仔细分析发现是findviewbyid()方法并没有获取到webview这个资源,造成webview是一个null值。由此造成程序的崩溃。

查资料发现是fragment的问题:不能在onCreate函数中获取控件,以为fragment还没有start,你可以在onStart函数中获取

@Overrideprotected 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("http://baidu.html");    }}
这样就可以在MainActivity中顺利获取fragment中的webview资源,并在代码中动态更改webview的url。

顺便解释一下这行代码的作用:

mPosition = 2;listView.setSelection(mPosition);
mPosition是一个全局变量,第二行代码可以使listview滑动到指定的item位置。

原创粉丝点击