2017-07-10 84 views
-1

我收到以下錯誤 指定的孩子已經有父母。您必須先調用子對象的父對象的removeView()。指定的孩子已經有一位家長。您必須先調用孩子父母的removeView

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     web = (WebView)findViewById(R.id.webView); 

     ln1=(LinearLayout) findViewById(R.id.ln1); 

     WebSettings settings = web.getSettings(); 
     settings.setJavaScriptEnabled(true); 

     web.loadUrl("http://github.tkddnjsdja.tk/"); 
     web.setWebViewClient(new myWebClient()); 

     web.setWebChromeClient(new WebChromeClient(){ 

      public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType, String capture) { 
       mUploadMessage = uploadMsg; 
       Intent i = new Intent(Intent.ACTION_GET_CONTENT); 
       i.addCategory(Intent.CATEGORY_OPENABLE); 
       i.setType("image/*"); 
       MainActivity.this.startActivityForResult(Intent.createChooser(i, "File Chooser"), MainActivity.FILECHOOSER_RESULTCODE); 

      } 



     }); 

     setContentView(web); 

    } 

好像是的setContentView問題 但不知道如何解決這個問題,並使其發揮作用。

+0

哪條線發生異常? –

+0

setContentView(web); –

+1

好吧,我看到哪一行。爲什麼你這樣做'setContentView(web);'?您已經在開始時設置了內容視圖。 –

回答

0

由於您嘗試添加已添加的視圖,因此會發生異常。

當您撥打setContentView(R.layout.activity_main);時,您的佈局被添加到應用程序的窗口(根視圖)。然後你做web = (WebView)findViewById(R.id.webView); - 獲取WebView並處理它。該webView已被添加到您的屏幕。

之後,您嘗試再次添加它:setContentView(web);。你不應該這樣做,因爲你的webView已經被添加了。

也稱此行

web.loadUrl("http://github.tkddnjsdja.tk/"); 

您設置clicnts到WebView,不以前

相關問題