gpt4 book ai didi

android - Android 数据绑定(bind)上的字符串比较

转载 作者:可可西里 更新时间:2023-11-01 18:58:14 25 4
gpt4 key购买 nike

我正在尝试与 android XML 数据绑定(bind)进行字符串比较,但没有得到正确的结果。

在代码中评估我的表达式,我尝试 notice.action == "continue",这是错误的。当然,在数据绑定(bind)中,这也是错误的。

android:textColor='@{ notice.action == "continue" ? @color/enabledPurple : @color/disabledGray}'

只有当我通过代码执行 notice.action.equals("continue") 时它才会变为真。这是预期的行为。我的问题是我不能用数据绑定(bind)表达式来完成这个,因为它不会运行像 equals 这样的方法。我该怎么做才能将比较表达式替换为另一个有效的表达式?

我正在使用 this guide .

编辑:我错了,方法在 XML 中是允许的。这样做:

android:textColor='@{ notice.action.equals("continue") ? @color/enabledPurple : @color/disabledGray}'

最佳答案

有两种方式:-

<强>1。 xml 中的第一种方法:-

    android:textColor="@{notice.action.equals(`continue`) ? @color/enabledPurple : @color/disabledGray }"

<强>2。第二种方式(以编程方式)在 xml 中:-

app:setColor="@{notice.action}" 
inside activity or custom class : -
@BindingAdapter("setColor")
public static void setTextColor(TextView textView, String s) {

Context context = textView.getContext();

textView.setTextColor(s.equals("continue") ? context.getResources().getColor(R.color.enabledPurple) : context.getResources().getColor(R.color.disabledGray));
}

关于android - Android 数据绑定(bind)上的字符串比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35980525/

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