gpt4 book ai didi

android - Kotlin Android 扩展 : java. lang.IllegalStateException: View 不能为空

转载 作者:行者123 更新时间:2023-12-02 13:08:46 26 4
gpt4 key购买 nike

我在我的 fragment 中使用 kotlin View 绑定(bind)。在某些情况下,应用程序会因 IllegalStateException 而崩溃&查看为null,我正在使用延迟为1.5秒的处理程序调用的可运行文件中访问它。

 numberRunnable = Runnable {
if (mobileView.text.toString().isNotEmpty() && Utility.isMobileNumberValid(mobileView.text.toString())) {
presenter.getCustomerDetails(Utility.getServerAcceptableContactNumber(mobileView.text.toString()))
}
}
mobileView一片空白

处理程序代码:
handler.postDelayed(numberRunnable, 1500)
我知道检查 isAdded 的一种可能性在我的 fragment 中,但由于我无法复制错误,我不确定它是否是问题所在。

最佳答案

该操作可能在用户离开 Fragment 和 onDestroy() 后运行。叫做。在这种状态下,Fragment 中将没有 View 实例。

一个简单的解决方法是创建一个全局变量来检查 fragment 的创建状态。设置为 trueonViewCreated()falseonDestroyView() (在 super 电话之前)。然后在执行逻辑之前检查 Runnable 中的该值。

更好的解决方案(尽管这取决于竞争条件并且需要将每个 Runnable 分配给一个全局变量)可能是使用 Handler.removeCallbacks()方法并传递所有 Runnables。

override fun onDestroyView() {
handler.removeCallbacks(numberRunnable)
}

另一种可能性是简单地说 View 是可以为空的:
mobileView?.let {
//Your stuff goes in here
//You can reference mobileView using "it"
}

关于android - Kotlin Android 扩展 : java. lang.IllegalStateException: View 不能为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54309529/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com