如何解决java.lang.ClassCastException: android.widget.TableLayout 不能转换为 java.lang.Boolean
伙计们, 我对 Kotlin 很陌生,正在尝试检查膨胀的视图是否已经存在。如果是这样,我想将其移除并更换为另一个充气。
问题是,我尝试检查此元素是否以 JavaScript 样式存在,但是 - 但是 - 这种方法在 Kotlin 中不起作用。它在我的运行日志中创建以下错误:
java.lang.ClassCastException: android.widget.TableLayout cannot be cast to java.lang.Boolean
产生此错误的实际代码片段:
val tableParentFallbackView = (highlightedTable?.parent as ViewGroup) as LinearLayout
if(tableParentFallbackView?.findViewById(R.id.highlight_number_1)) {
tableParentFallbackView.removeView(findViewById(R.id.highlight_number_1))
}
那么问题是:如何检查 Kotlin 中是否已经存在视图? ^^
解决方法
现在您正在使用 TableLayout?
作为布尔值。相反,您需要检查它是否不为空,例如:
tableParentFallbackView?.findViewById(R.id.highlight_number_1) != null
好的,在评论中的一些帮助下,我找到了解决方案。我试图在 TableLayout 中选择一个 LinearLayout - 因此我必须像这样对 Selector 进行类型转换:
if(tableParentFallbackView.findViewById<LinearLayout>(R.id.highlight_number_1) != null) {
tableParentFallbackView.removeView(findViewById(R.id.highlight_number_1))
}
感谢支持 - 我希望它会在未来帮助某人,解决类似的问题^^
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。