微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为 2 个片段实现 onBackPressed

如何解决为 2 个片段实现 onBackPressed

我查看了多个问题,还没有找到解决方案。

我已经导入了 youtube 播放器 SDK 和一个网络视图。一个在 Live_fragment 中,另一个在 Article_Fragment 中。

这是导致崩溃的 onBackpressed 代码

@Override
override fun onBackpressed() {
    if (webViewE.canGoBack() || youTubePlayer.isFullScreen()) {
        youTubePlayer.exitFullScreen()
        webViewE.goBack()
    } else {
        super.onBackpressed()
    }
}

现在,webViewE.canGoBackyouTubePlayer.isFullScreen() 单独工作正常(如果我只放入其中之一),但如果它们都在函数中,我得到:

Attempt to invoke virtual method 'boolean android.webkit.WebView.canGoBack()' on a null object reference" and app crashes

解决方法

这意味着您的 WebView 变量在 Scanner scan = new Scanner(System.in); int n = scan.nextInt(); int[] costs = new int[n]; int[] shipping = new int[n]; ArrayList<Integer> totalCosts = new ArrayList<>(); 调用时为空。您需要确保正确初始化它并确保它在可能调用 onBackPressed 之前没有以某种方式无效。如果您想在 WebView 可能为空的情况下消除这种情况,您可以在当前检查的旁边添加一个空检查,即:

onBackPressed

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。