“指定的孩子已经有一个父母。必须首先在该孩子的父母上调用removeView()。”

时间:2018-07-12 19:25:34

标签: android android-studio kotlin

“这是我的代码”,我尝试在我的活动中进一步打开网页

class License : AppCompatActivity() {
    lateinit var webv:WebView

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_license)

        webv = findViewById<WebView>(R.id.webv)
        wvbtn.setOnClickListener{
            setContentView(webv)
            webv.loadUrl("https://www.sona3elghad.ml")

        }
    }

这是错误

E / Android运行时:致命异常:主要                   流程:com.medanis.fneclis,PID:8525                   java.lang.IllegalStateException:指定的子代已经有一个父代。您必须先在孩子的父母上调用removeView()。                       在android.view.ViewGroup.addViewInner(ViewGroup.java:4586)                       在android.view.ViewGroup.addView(ViewGroup.java:4427)                       在android.view.ViewGroup.addView(ViewGroup.java:4367)                       在android.view.ViewGroup.addView(ViewGroup.java:4340)                       在android.support.v7.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:458)                       在android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:145)                       在com.medanis.fneclis.License $ onCreate $ 1.onClick(License.kt:23)                       在android.view.View.performClick(View.java:5682)                       在android.view.View $ PerformClick.run(View.java:22669)                       在android.os.Handler.handleCallback(Handler.java:836)                       在android.os.Handler.dispatchMessage(Handler.java:103)                       在android.os.Looper.loop(Looper.java:203)                       在android.app.ActivityThread.main(ActivityThread.java:6276)                       在java.lang.reflect.Method.invoke(本机方法)                       在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:1063)                       在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:924)

请帮助我,谢谢^ _ ^

1 个答案:

答案 0 :(得分:0)

wvbtn.setOnClickListener{
    setContentView(webv)
    webv.loadUrl("https://www.sona3elghad.ml")
}

setContentView(webv)此行引起错误。如果要将网址加载到WebView中,请将代码更改为以下内容:

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_license)

    webv = findViewById<WebView>(R.id.webv)
    webv.loadUrl("https://www.sona3elghad.ml")
}