运行时的数据绑定更改按钮颜色

时间:2018-04-27 13:28:19

标签: android android-databinding

我的片段中有3个按钮,这个过程就是这样 -

当我点击第一个按钮时,两个背景颜色的其余部分将变为银色,按钮第一个按钮,点击将变为背景颜色蓝色或浅蓝色表示您的活动点击按钮。

使用(button = findviewbyid)相对容易更改此按钮属性,例如运行时的颜色,但我想使用databinding库,

如何实现这一目标?

1 个答案:

答案 0 :(得分:1)

创建一个模型类并使用一个布尔值来检查是否单击按钮单击使用按钮点击make条件如此...

在按钮xml中放置代码。

android:background="@{model.online == true ? @color/colorAccent : @color/colorPrimary}"

pojo class。

public class Model {
private boolean isSelected;

public boolean isSelected() {
    return isSelected;
}

public void setSelected(boolean selected) {
    isSelected = selected;
}

}

并在xml中定义数据标签之间的变量..

        <variable
        name="model"         type="com.example.adruser.databindinglibrarydemo.model.SampleModel" />

在活动中制作一个方法。

 public void onButtonClick(boolean status) {
    model.setOnline(status);
}

然后在这个方法之后调用按钮点击xml就像这样..

  android:onClick="@{()->activity.onButtonClick(false)}"

您可以在下面链接中提供更多信息:

https://developer.android.com/topic/libraries/data-binding/index.html

https://github.com/codepath/android_guides/wiki/Applying-Data-Binding-for-Views