【发布时间】:2018-01-07 01:31:46
【问题描述】:
我在布局文件中使用数据绑定。以下是相关代码sn-p:
<ImageButton
android:id="@+id/btn_cross"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_close_white"
app:onClick="@{(v) -> gameManager.dismissAndDestroyDialog()}"
app:tapEvent="@{(v) -> eventUtils.sendEvent(viewModel.state == State.IN_PROGRESS ? Source.GAME_LOADING : Source.GAME_LOADING_ERROR)}"/>
viewModel:这是此布局的视图模型。tapEvent:我用于绑定适配器。Source:枚举类
State : 一个枚举类
当我执行这个时,我得到以下异常:
e: error: cannot generate view binders java.util.ConcurrentModificationException
e:
e: at java.util.HashMap$HashIterator.nextNode(HashMap.java:1437)
e: at java.util.HashMap$ValueIterator.next(HashMap.java:1466)
e: at android.databinding.tool.expr.CallbackExprModel.seal(CallbackExprModel.java:63)
e: at android.databinding.tool.expr.LambdaExpr.setup(LambdaExpr.java:154)
e: at android.databinding.tool.Binding.resolveCallbackParams(Binding.java:93)
e: at android.databinding.tool.BindingTarget.resolveCallbackParams(BindingTarget.java:175)
e: at android.databinding.tool.LayoutBinder.<init>(LayoutBinder.java:237)
e: at android.databinding.tool.DataBinder.<init>(DataBinder.java:52)
e: at android.databinding.tool.CompilerChef.ensureDataBinder(CompilerChef.java:88)
e: at android.databinding.tool.CompilerChef.sealModels(CompilerChef.java:187)
e: at android.databinding.annotationprocessor.ProcessExpressions.writeResourceBundle(ProcessExpressions.java:184)
如果您需要更多详细信息,请发表评论。我也用字符串参数在不同的 xml 文件中尝试过这个。没有什么对我有用。这是一个已知的错误吗?如果是这样,是否有任何解决方法?
注意:eventUtils 类是用 Kotlin 编写的,但我不认为这是一个问题。
编辑:viewModel.state 是 State 枚举数据类型的 Observable 字段。
【问题讨论】:
标签: java android data-binding