尝试在空对象引用上调用虚拟方法 'android.view.View android.view.View.findViewById(int)'
ttempt to invoke virtual method 'android.view.View android.view.View.findViewById(int)' on a null object reference
我创建了一个 Fragment,我想加载一个 WebView。但是我得到这个错误:
Attempt to invoke virtual method 'android.view.View android.view.View.findViewById(int)' on a null object reference
代码:
public class StudentPlanFragment extends Fragment {
private WebView mWebView;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View onCreateView = super.onCreateView(inflater, container, savedInstanceState);
mWebView = (WebView) onCreateView.findViewById(R.id.webViewStudentPlan);
mWebView.loadUrl("http://example");
mWebView.getSettings().setJavaScriptEnabled(true);
return onCreateView;
}
}
感谢您的帮助。
编辑如下:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.YOUR_LAYOUT_NAME, null);
mWebView = (WebView) rootView .findViewById(R.id.webViewStudentPlan);
mWebView.loadUrl("http://example");
mWebView.getSettings().setJavaScriptEnabled(true);
return rootView ;
}
您必须在代码中膨胀 xml 才能从 xml 布局中找到 WebView
。
public class StudentPlanFragment extends Fragment {
private WebView mWebView;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
//Delete the below commented code, it is just to highlight the mistake in the existing code
/* View onCreateView = super.onCreateView(inflater, container, savedInstanceState);*/
View mView = inflater.inflate(R.layout.YOUR_XML_LAYOUT_FILE_NAME, container, false);
mWebView = (WebView) onCreateView.findViewById(R.id.webViewStudentPlan);
mWebView.loadUrl("http://example");
mWebView.getSettings().setJavaScriptEnabled(true);
return onCreateView;
}
}
我创建了一个 Fragment,我想加载一个 WebView。但是我得到这个错误:
Attempt to invoke virtual method 'android.view.View android.view.View.findViewById(int)' on a null object reference
代码:
public class StudentPlanFragment extends Fragment {
private WebView mWebView;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View onCreateView = super.onCreateView(inflater, container, savedInstanceState);
mWebView = (WebView) onCreateView.findViewById(R.id.webViewStudentPlan);
mWebView.loadUrl("http://example");
mWebView.getSettings().setJavaScriptEnabled(true);
return onCreateView;
}
}
感谢您的帮助。
编辑如下:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.YOUR_LAYOUT_NAME, null);
mWebView = (WebView) rootView .findViewById(R.id.webViewStudentPlan);
mWebView.loadUrl("http://example");
mWebView.getSettings().setJavaScriptEnabled(true);
return rootView ;
}
您必须在代码中膨胀 xml 才能从 xml 布局中找到 WebView
。
public class StudentPlanFragment extends Fragment {
private WebView mWebView;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
//Delete the below commented code, it is just to highlight the mistake in the existing code
/* View onCreateView = super.onCreateView(inflater, container, savedInstanceState);*/
View mView = inflater.inflate(R.layout.YOUR_XML_LAYOUT_FILE_NAME, container, false);
mWebView = (WebView) onCreateView.findViewById(R.id.webViewStudentPlan);
mWebView.loadUrl("http://example");
mWebView.getSettings().setJavaScriptEnabled(true);
return onCreateView;
}
}