2017-07-10 89 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,不以前

相关问题