android-fragments AndroidKotlin片段:''试图对空对象引用调用虚方法''

vulvrdjw  于 2022-11-14  发布在  Android
关注(0)|答案(1)|浏览(184)

我在MainActivity中的程式码:

val buttonbckbrowse = findViewById<Button>(R.id.buttonbck)
    buttonbckbrowse.setOnClickListener {
        val webView = findViewById<WebView>(R.id.webViewBrowse)
        webView.goBack()
        Toast.makeText(baseContext, "Back", Toast.LENGTH_SHORT).show()
    }

buttonbck在不同的片段中。
尝试运行我的应用程序时,我收到“异常:尝试在上述代码的第二行中对空对象引用“”调用虚拟方法“void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)”。
我不知道我做错了什么。

ryevplcw

ryevplcw1#

让一个Activity直接访问一个片段的视图总是会导致复杂化。我建议你重新考虑你的方法。
包含该按钮的片段应设置单击侦听器。当单击该按钮时,该片段将事件引发到与宿主Activity共享的对象。(类似于WebViewNavigation)然后,宿主活动可以只在WebViewNavigation上设置一个单击侦听器,或者WebViewNavigation可以在事件以流的形式发生时进行通知(使用LiveData),并且Activity可以观察该事件流。

相关问题