如何在应用程序"kotlin"中实现WebVeiw?



试图用kotlin实现webView,但出现错误错误1-java.lang.NullPointerException:试图对null对象引用调用虚拟方法"void android.webkit.WebView.loadUrl(java.lang.String("访问com.abc.MainActivity.onAviationItemSelected错误2-E/cr_PlatformSer-Internal:UsageReporting查询失败E/cr_PlatformSer-Internal:无法确定安全浏览用户选择加入首选项

主要活动.kt-

val webView: WebView? = findViewById<WebView>(R.id.webView)
webView?.webViewClient = WebViewClient()
setContentView(R.layout.fragment_privacy)
val url: String = intent.getStringExtra("https://www.geeksforgeeks.org/") ?: "Privacy"

privacyfragment.kt-

class privacyfragment {
fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
// Inflate the layout for this fragment 
return inflater.inflate(R.layout.fragment_privacy, container, false)
}
}

在使用setContentView为"活动"设置布局之前,您正在尝试查找R.id.webView。你需要按以下顺序进行:

setContentView(R.layout.fragment_privacy)
val webView = findViewById<WebView>(R.id.webView)

这样,findViewById就可以访问"活动"的view(现已创建(并进行搜索。此外,如果您希望WebView在那里,则没有必要使webView为null——如果它null并导致崩溃,那是因为您有一个需要修复的问题。


但如果您试图添加Fragment,用片段的布局XML调用setContentView是不行的——这只是在Activity中放置相同的视图,那里没有Fragment。阅读本指南,了解Fragments以及添加它们和在它们之间导航的不同方式。

如果您正在创建一个包含WebViewFragment,那么您应该在Fragment中完成它的所有设置(包括findViewById(。试着从Activity(以及所有涉及的协调(来戳它会给你带来很多问题。您的CCD_ 17总是可以调用CCD_;加载这个URL";,CCD_ 19本身应该是直接与CCD_ 20 对话的东西

我能够作为完成

主要活动.kt

setContentView(R.layout.fragment_privacy)
val webView = findViewById<WebView>(R.id.webView)
webView.webViewClient = WebViewClient()
webView.settings.javaScriptEnabled = true
webView.loadUrl("add your url here")

最新更新