2016-07-21 2 views
-1

나는 프래그먼트를 만들고 WebView를로드하려고합니다.null 객체 참조에서 가상 메소드 'android.view.View android.view.View.FindViewById (int)'를 호출하지 말 것

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; 
    } 
} 

감사하지만 난이 오류가 발생합니다. 아래

+0

'onCreateView' 개체가 null 인 것처럼 보입니다. – Bobby

+0

여기에 XML을 게시하십시오 –

답변

1

편집 :

@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 ; 
} 
+0

올바른데, 컴파일러가 마음을 읽고 어떤 레이아웃 파일을 사용할 지 알 수 없습니다 조각이 없습니다. – Namnodorel

1

당신은 XML 레이아웃에서 WebView를 찾기 위해 코드에 XML을 팽창해야합니다.

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; 
    } 
} 
+0

확실히 컴파일 오류가 발생합니다. onCreateView가 초기화되지 않았기 때문에. :) –