以下是Android数据绑定的典型用法:
plt.ion()
当州采用多个价值观时会变得更难。 修改:使用方法调用中的status属性是使其工作的唯一方法:
android:background="@{isError ? @color/red : @color/white}"
并定义静态方法(没有@Bindable):
android:background="@{Check.getStatusColor(check.status)}"
如果不将嵌套的三元运算符放在XML中(我不会发现它非常优雅,顺便说一句),或者没有传递public int getStatusColor(int status) {
switch (status.get()) {
case STATUS_OK:
return ContextCompat.getColor(context, R.color.success);
case STATUS_WARNING:
return ContextCompat.getColor(context, R.color.warning);
case STATUS_ERROR:
return ContextCompat.getColor(context, R.color.error);
default:
return ContextCompat.getColor(context, R.color.idle);
}
}
属性,我怎样才能实现这一点?
编辑:添加XML:
check.status
答案 0 :(得分:5)
我会这样做:
android:background="@{check.getStatusColor()}"
getStatusColor
是Check
的非静态方法,这就是为什么我们可以访问我们的实例字段status
public int getStatusColor() {
switch (status) {
case STATUS_OK:
return ContextCompat.getColor(context, R.color.success);
case STATUS_WARNING:
return ContextCompat.getColor(context, R.color.warning);
case STATUS_ERROR:
return ContextCompat.getColor(context, R.color.error);
default:
return ContextCompat.getColor(context, R.color.idle);
}
}
这应该有用。