【发布时间】:2016-06-29 01:51:25
【问题描述】:
我正在尝试与 android XML 数据绑定进行字符串比较,但我没有得到正确的结果。
在代码中评估我的表达式,我尝试notice.action == "continue",这是错误的。当然,在数据绑定中,这也是错误的。
android:textColor='@{ notice.action == "continue" ? @color/enabledPurple : @color/disabledGray}'
只有当我通过代码执行notice.action.equals("continue") 时才会发生这种情况。这是预期的行为。我的问题是我不能用数据绑定表达式来完成这个,因为它不会运行像equals 这样的方法。我该怎么做才能将比较表达式替换为另一个有效的比较表达式?
我正在使用this guide。
编辑: 我错了,XML 中允许使用方法。这样做的:
android:textColor='@{ notice.action.equals("continue") ? @color/enabledPurple : @color/disabledGray}'
【问题讨论】:
-
为什么说它不会运行.equals()之类的方法呢?数据绑定表达式支持方法。
-
重新阅读文档,我找到了。我想我过去了。感谢您指出这一点,我会在我的代码中尝试!
-
能否分享在数据绑定中使用equals()的代码
-
当然。就像@anoopg87 一样。 "android:textColor='@{ notice.action.equals("continue") ?@color/enabledPurple : @color/disabledGray}'"
标签: android data-binding comparison string-comparison