2012-08-10 4 views
0

안녕하세요 여러분, 제가 코드로 WebView를 만들고 싶습니다. 이것은 내가 사용하고 싶은 코드입니다.WebView를 만들 수 없습니다

WebView WVakten = new WebView(MainActivity.this); 
       WVakten.setLayoutParams(new LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.FILL_PARENT)); 
       WVakten.setVisibility(View.VISIBLE); 
       WVakten.getSettings().setJavaScriptEnabled(true); 
       WVakten.getSettings().setBuiltInZoomControls(true); 
       WVakten.getSettings().setDefaultZoom(WebSettings.ZoomDensity.CLOSE); 
       WVakten.loadUrl("http://www.google.de"); 
       WVakten.setWebViewClient(new WebViewClient(){ 
        public boolean shouldOverrideUrlLoading(WebView view, String url) { 
         if (url != null && url.startsWith("http://")) { 
          view.getContext().startActivity(
           new Intent(Intent.ACTION_VIEW, Uri.parse(url))); 
          return true; 
         } else { 
          return false; 
         }}}); 

하지만 난 단지 다음과 같은 오류 얻을 응용 프로그램을 시작하려고하면

08-10 19 : 03 : 10.560를 : W/webcore (7134) 다음 후 viewWidth를 가져올 수 없습니다 첫 번째 레이아웃

하지만이 오류가 발생하는 이유는 알 수 없습니다.

+0

을 사용해야합니다 http://stackoverflow.com/questions/10743051/w-webcore2733-cant-get-the-viewwidth- 첫 번째 레이아웃 이후 –

+0

보기를 어디에서 만듭니 까? – Ostkontentitan

+0

onCreate() - 뷰를 생성하고 목록에 데이터를 바인딩하는 등의 일반적인 정적 설정을해야합니다. – Maxim

답변

0

이 문제를 해결하는 가장 쉬운 방법은 XML 파일에 레이아웃을 만들고 onview에서 webview를 레이아웃에 추가하는 것입니다.

예 :에서

<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:weightSum ="1.0" 
android:layout_width="match_parent" android:layout_height="match_parent">  

<fragment 
    android:id="@+id/article" 
    android:layout_width="match_parent" 
    android:layout_height="0px" 
    android:layout_weight="0.90" 
    class="nieuws.com.ArticleFragment" /> 
</LinearLayout> 

는에 당신은 단순히 다음 코드를 추가 ArticleFragment의 생성이 재스퍼

0

하는 데 도움이

public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 

    m_webview = new WebView(getActivity()); 
    m_webview.getSettings().setJavaScriptEnabled(true); 

    m_webview.setWebViewClient(new jWebViewClient()); 
    return m_webview; 
} 

희망을 당신이 생각 콘텐츠보기를 설정하지 않았거나를 추가하지 않았습니다. 10 여기에 코드를 iew 주 레이아웃에 입력하십시오. 웹보기가에서 onCreate에서 코드의 끝에 다음에는 주변의 레이아웃,() 추가가없는 경우 :이 경우

setContentView(WVakten); 

을의 LayoutParams은 필요하지 않습니다 당신은 이미 당신의 콘텐츠보기를 설정 한 경우

LinearLayout yourLayout = findViewById(R.id.something); 
yourLayout.addView(WVakten); 

을 그 케이스의 LayoutParams이 필요합니다 부모 레이아웃의 유형이어야에서 : 레이아웃은, 당신은 그 레이아웃에 대한 참조를 얻고보기를 추가해야합니다. 그래서 경우 WebView있는 LinearLayout에 둘러싸여 당신은 어쩌면이 당신에게 해답을 줄 수

LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(...); 
관련 문제